Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URL中的参数是否安全_Php_Html - Fatal编程技术网

Php URL中的参数是否安全

Php URL中的参数是否安全,php,html,Php,Html,我必须在我的页面中传递参数。例如,我的数据库的ID 这样做好吗:www.example.com?id=10 或者我必须散列参数: www.example.com?id=b1d5781111d84f7b3fe45a0852e59758cd7a87e5 这真的很重要吗 谢谢 致以最诚挚的问候无需对查询字符串中的Id进行哈希运算。是的,它对每个人都是可见的,但它是一种常见的用法。您应该在服务器端验证此参数不会损害您的应用程序您如何能够追溯该特定哈希的id?如果需要获取所有数据库id并对其进行散列以查找

我必须在我的页面中传递参数。例如,我的数据库的ID

这样做好吗:www.example.com?id=10

或者我必须散列参数:

www.example.com?id=b1d5781111d84f7b3fe45a0852e59758cd7a87e5

这真的很重要吗

谢谢
致以最诚挚的问候

无需对查询字符串中的Id进行哈希运算。是的,它对每个人都是可见的,但它是一种常见的用法。您应该在服务器端验证此参数不会损害您的应用程序

您如何能够追溯该特定哈希的id?如果需要获取所有数据库id并对其进行散列以查找匹配的记录,则会造成瓶颈

在URL中使用id是常用的,只是不要在URL中放置任何敏感数据以保护访问者(和您自己)


还要注意,每个来访者都是邪恶的。始终验证输入数据并进行适当的错误处理,以防有人弄乱URL。

ID是可以的,但我认为这个问题的实质可能是一个非常现实的问题

正如其他人所说,你应该期望作恶者使用你的网站。对于设计糟糕的web应用程序,SQL注入攻击尤其令人担忧。ID本身不是问题,但如果后端正在构建SQL字符串,则可能会出现问题。例如,如果您的PHP代码采用该参数并创建此SQL:

SQL = 'select * from product where id ='.$_GET['id']  
如果有人更改浏览器以调用此页面,则执行此SQL将是一个主要问题:

/product.php?id=1;DELETE FROM USERS;--
…您可能会得到一个空的数据库表

每种语言都有自己的方式来防止这种情况的发生,所以要确保你的方式是正确的。例如,看到这个问题了吗


有关更多信息,请参见

这取决于您所保护的内容。哈希(或任何其他形式的模糊处理)在这里究竟提供了什么?您建议如何将此哈希转换回数字?散列通常是单向函数。我会将散列保存在数据库中并搜索this@anubis当然但这与使用直整数有什么不同呢?你得到的唯一好处是,有人不容易“连续尝试所有数字”,但这在任何严肃的应用程序中都应该是无关紧要的。数据的安全性和完整性决不应依赖于无法猜测长期价值的人。