URL和phpmyadmin自动增量

时间:2013-07-09 00:13:05

标签: php mysql security phpmyadmin

我正在寻找解决这个问题的最好方法,我一直在寻找一种方法来尝试解决它。

我有一个名为products的数据库表,在这张表中,我的所有产品都有鞋子,衣服,帽子等等。

我有一个单独的页面,我曾根据产品ID将所有内容反映到我使用的代码中

<a href="product.php?ID=<?php echo $row['ID']; ?>">View</a>

网址看起来像这样

http://www.example.x10.mx/product.php?ID=1

问题是有人可以将ID更改为2或3或4 ....这不应该发生。我不知道问题是它是不是使用付费域名还是只使用x10hosting。

问题

我想提供从将网址中的ID更改为他们想要的任意随机数的用途,有人可以告诉我如何做到这一点。

另一个问题 它们是phpMyadmin可以生成随机字母和数字混合的方式,因为这是我想到解决问题的唯一方法

谢谢

2 个答案:

答案 0 :(得分:-1)

在工作中使用我们的商务系统时,我不得不处理与此类似的问题。我们处理它的方式是提供用户在查询中拥有的值的哈希值。

如果您要对盐加密查询字符串并制作您的网址/product.php?id=1&hash=ajk23j4aksdljfklasdjf2345j - 然后在product.php上验证哈希是否正确匹配。如果哈希值不匹配,则表示用户已更改内容。

答案 1 :(得分:-1)

这不是一个真正的答案,但我觉得有必要在这里发帖,因为我认为应用程序的设计状况不佳

来自主要问题的评论主题:

  很抱歉让你感到困惑,但他们并没有真正的困惑。例如,cap,shoe使用product.php页面和手套,衬衫使用itemview.php页面,当您单击视图时,两个页面都使用产品ID(ID)。希望有意义

它仍然没有意义。你提到的所有这些事实上都是产品......不同类型的产品。在任何理智的设计中,他们都将使用相同的URL格式。根据产品类型做事情的逻辑属于你用作控制器的任何东西 - 在你的情况下我假设url中的.php页面。你只需要其中一个......从那里你可以做不同的事情。

最基本意义上的例子:

// This is product.php

if(!isset($_GET['id'])) {
  // 404 or some other error
}

$product = get_item_by_id($_GET['id']);

if(!$product) {
   // 404 or other error
}

switch($product['type']) {
    case 'cap':
    case 'shoes':
       // for cap and shoes use the product_view template
       include 'product_view.php';
       break;

    case 'gloves':
    case 'shirts':
        // for gloves and shirts use the item_view template
       include 'item_view.php';
       break;

    default:
       // otherwise use the default product view template
       include 'default_view.php';

}

// anything else you need to do that isnt done in the view specific file

现在所有人都认为这些是特定产品,但您的示例听起来更像是类别。通常情况下,您会有一个单独的页面,用于与产品完全相同的类别,但以某种视觉方式输出产品实体的“集合”。

相关问题