如何防止用户在PHP中更改url参数?

时间:2013-11-12 09:47:45

标签: php mysql url

我正在开发一个网站,我通过网址发送ids之类的参数。我使用urlencode和base64encode来编码参数。

我的问题是如何阻止用户或黑客玩url参数或仅在数据库中存在参数值时才提供访问?

我在url中至少有2个,最多有5个参数,所以检查每个页面上每个参数是否存在都是可行的?

由于

4 个答案:

答案 0 :(得分:4)

您无法阻止用户使用QueryString

您只能在对脚本执行任何操作之前在脚本中验证它们。

这也适用于POSTed变量,它们几乎可以被轻易攻击。

验证,验证,验证。

答案 1 :(得分:0)

一般情况下,如果您关注内部数据,请将它们放在会话变量中。但要记住,那里的一切都是邪恶的。你总是要检查是否有任何输入包含SQL注入。

如果您使用会话cookie,请确保它们仅为http。因此,没有JavaScript可以复制会话cookie,如果可能的话,永远不会将它们放在URL本身。复制网址并劫持现有会话非常容易。

答案 2 :(得分:0)

这取决于您使用参数的内容。如果它们是私有的并且不应该被其他用户访问,则应该将数据链接到特定用户,并拒绝访问未经过身份验证的所有用户。

此外,请始终记住清理用户输入,其中包括URL参数。在将用户输入传递给数据库时使用预准备语句,并在将其提供给其他用户之前对其进行编码。

答案 3 :(得分:0)

我最好的办法是在服务器端验证用户输入的参数。此外,我会检查请求是否来自我的网站(XSS& CSRF)。传输数据发布会很好,但提供最小的安全性恕我直言。 因此,验证并验证原始位置以确保它不来自外部源