URL中的参数是否安全

时间:2015-12-01 21:03:01

标签: php html

我必须在我的页面中传递参数。对于我的数据库的例子。

这样做是个好主意:www.example.com?id = 10

或者我要哈希参数:

www.example.com?id=b1d5781111d84f7b3fe45a0852e59758cd7a87e5

对这个进行哈希非常重要吗?

由于 最好的问候

3 个答案:

答案 0 :(得分:2)

无需在查询字符串中散列Id。是的,每个人都可以看到它,但这是常见的用途。您应该在服务器端验证此参数不会损害您的应用程序

答案 1 :(得分:1)

您如何追溯该特定哈希的ID?如果您需要获取所有数据库ID并将其哈希以查找匹配记录,则会产生瓶颈。

在网址中使用ID是常用的,只是不要在网址中添加任何敏感数据来保护访问者(以及您自己)。

还要注意每个访客都是邪恶的。总是验证收到数据并做一些正确的错误处理,因为有人正在弄乱网址。

答案 2 :(得分:0)

Ids还可以,但我认为这个问题的精神可能是一个非常真实的问题的结果。

正如其他人所说,你应该期待恶人使用你的网站。对于设计不佳的Web应用程序特别关注的是SQL注入攻击。 ID本身并不是问题,但如果您的后端正在构建一串SQL,那么您可能会遇到问题。例如,如果您的PHP代码正在使用该参数并创建此SQL:

SQL = 'select * from product where id ='.$_GET['id']  

如果有人更改浏览器以调用此页面,则执行此SQL将是一个主要问题:

/product.php?id=1;DELETE FROM USERS;--

...你最终可能会得到一个空的数据库表。

每种语言都有自己的方法来保护这种东西,所以要确保你以正确的方式做到这一点。例如,请参阅此问题How can I prevent SQL injection in PHP?

有关详细信息,请参阅https://www.owasp.org/index.php/SQL_Injection