我正在开发一个网站,我在其中通过 url 发送参数,如 ids。我使用 urlencode 和 base64encode 对参数进行编码。
我的问题是如何防止用户或黑客使用 url 参数或仅当参数值存在于数据库中时才授予访问权限?
我在 url 中至少有 2 个,最多 5 个参数,所以检查每个页面上的数据库中是否存在每个参数是否可行?
谢谢
您无法阻止用户使用您的QueryString
.
您只能在对它们进行任何操作之前在脚本中验证它们。
这也适用于 POSTed 变量,它们几乎同样容易被黑客入侵。
所以验证,验证,验证。
我最好是在服务器端验证用户输入的参数。我还会检查请求是否来自我的网站(XSS 和 CSRF)。传输数据帖子会很好,但恕我直言,安全性最低。因此,验证和验证原始位置以确保它不是来自外部来源
一般来说,如果您关心内部数据,请将它们放在会话变量中。但永远记住外面的一切都是邪恶的。您总是必须检查任何输入是否包含 SQL 注入。
如果您使用会话 cookie,请确保它们只是 http。因此,没有 JavaScript 可以复制会话 cookie,并且如果可能的话,永远不要将它们放在 url 本身中。复制 url 并劫持现有会话非常容易。
这在一定程度上取决于您使用参数的目的。如果它们是私有的并且不应该被其他用户访问,您应该将数据链接到特定用户,并拒绝未经身份验证为正确用户的每个人访问。
此外,请始终记住清理用户输入,其中包括 URL 参数。将用户输入传递给数据库时使用准备好的语句,并在将其返回给其他用户之前对其进行编码。