2

我正在开发一个网站,我在其中通过 url 发送参数,如 ids。我使用 urlencode 和 base64encode 对参数进行编码。

我的问题是如何防止用户或黑客使用 url 参数或仅当参数值存在于数据库中时才授予访问权限?

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

谢谢

4

4 回答 4

4

您无法阻止用户使用您的QueryString.

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

这也适用于 POSTed 变量,它们几乎同样容易被黑客入侵。

所以验证,验证,验证。

于 2013-11-12T09:50:57.203 回答
0

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

于 2013-11-12T10:00:22.020 回答
0

一般来说,如果您关心内部数据,请将它们放在会话变量中。但永远记住外面的一切都是邪恶的。您总是必须检查任何输入是否包含 SQL 注入。

如果您使用会话 cookie,请确保它们只是 http。因此,没有 JavaScript 可以复制会话 cookie,并且如果可能的话,永远不要将它们放在 url 本身中。复制 url 并劫持现有会话非常容易。

于 2013-11-12T09:50:04.737 回答
0

这在一定程度上取决于您使用参数的目的。如果它们是私有的并且不应该被其他用户访问,您应该将数据链接到特定用户,并拒绝未经身份验证为正确用户的每个人访问。

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

于 2013-11-12T09:51:34.240 回答