【问题标题】:Securing user input through forms PHP通过表单 PHP 保护用户输入
【发布时间】:2018-04-09 15:57:54
【问题描述】:

我正在为大学的一个项目制作自己的社交媒体网络。我遇到的一个障碍是安全表单。

我正在为一个用户选择向另一个用户发送好友请求,我可以对其进行编码。但那个棘手的部分是让它安全。如果我只使用 xxxxxx/profile.php?id=2&action=sendfr 则可以向人们发送该链接并让他们向他们发送好友请求。

如果我将 action=sendfr 作为 POST 数据发送,那么欺骗者可以在网站上制作一个表单来做同样的事情。

我正在考虑的一种方法是在 POST 数据中发送某种 AuthKey,然后出于这些目的发送给客户端。

谁能推荐使用户操作安全的最佳选择?

【问题讨论】:

  • CSRF 可能会在这里提供帮助,或者安全 cookie 可能
  • 我使用的唯一 cookie 是 PHPSESSID,我的考虑是当页面加载时通过 javascript 变量将令牌发送给用户,该变量可用于 POST 表单以验证操作。
  • 你在使用框架吗?
  • 按照 Andy 的建议查看 CSRF 令牌。
  • 谢谢你,是的,我现在正在研究什么

标签: php html css forms


【解决方案1】:

您要避免的是Cross-site request forgeryThere several ways to avoid them 但最流行的是在服务器中生成一个随机令牌,并将其与每个可以更改持久数据的页面一起发送。然后,当用户发回请求时,它必须包含令牌,以便服务器可以验证令牌是否匹配。在这种情况下,令牌必须是随机的并且在每个请求中都不同。您可以在上面链接的 OWASP 页面中找到更多详细信息和技术。

【讨论】:

  • 我刚刚做到了,当会话开始时(用户登录);对于该 php 会话,用户将获得一个存储在 $_SESSION 中的令牌。该令牌被回显到通过 POST 将其中继回服务器的表单中。
  • 只要您的 CSRF 令牌与会话令牌不同,您就可以了
猜你喜欢
  • 2010-11-21
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
相关资源
最近更新 更多