【问题标题】:Most secure value for action attribute in the <form> tag<form> 标签中动作属性的最安全值
【发布时间】:2017-07-27 07:09:48
【问题描述】:

我想知道 action 属性最安全的选项是什么,因为很多人说 $_SERVER['PHP_SELF'] 不安全。为动作属性提供空字符串可以吗?但是$_SERVER['PHP_SELF'] 和空字符串的输出是不同的。

【问题讨论】:

标签: php html forms


【解决方案1】:

我不认为真的有一种真正“安全”的方式来填充表单的 action 属性。例如,我可以打开 Web 控制台并随意修改表单。

也就是说,我认为您真正关心的是,是否有人要发送一个链接,其中使用了旨在更改 PHP_SELF 值的漏洞利用。获取链接的人无法知道表单已被泄露。

所以,我通常喜欢在可能的情况下对我的操作 URL 进行硬编码。如果它们必须是动态的,您可以根据您希望确保有意义的 URL 列表来验证它们。

空的action属性也没有什么问题,不过你可以看看Forms with action=""

编辑:总结一下我原来的帖子: 我认为硬编码的 URL 是最好的。 接下来是一个“#”或一个空字符串(实际上,它仍然是一个硬编码的 URL)。 我尽量避免使用 PHP_SELF,并在我必须使用它时根据已知的合法 URL 对其进行验证。

【讨论】:

  • 嗨,杰森,感谢您的回答。我只想知道哪个比较好?一个空字符串或 # 或 PHP_SELF?
  • 我想我的回答有点含糊。我更喜欢空字符串,因为它有助于防止网络钓鱼和其他意外行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多