php - 什么是安全 token 以及为什么在表单中使用它?

标签 php security

我在许多论坛和其他网站上看到他们在 POST 或 GET 方法中使用安全 token (一个长字符串)。例如(POST 方法):

<input
    type="hidden"
    name="securitytoken"
    value="1363774829-89afb5d0fbcd2f8d55db0b675061d62bd21ca94e"
/>

GET 方法示例:

http://www.example.com?attribute=xyz&token=f0ec0e8e1622a030cbc543d3ac42729e

这个安全 token 是什么?为什么使用它?它提供什么类型的安全性?应该用在什么地方?

最佳答案

它可能是防止“CSRF”(跨站点请求伪造)的 token 。

例如,

  • 您已登录论坛
  • 你去evilhacker.com
  • evilhacker 有一个自动提交表单,可以向论坛发送垃圾邮件
  • 因为您已登录,所以您发布了(以您的名义)垃圾邮件。

但是因为论坛需要一些与您的 session 相关的 token (所以 evilhacker 无法根据自己的形式猜测它),该帖子被拒绝并且您没有发布垃圾邮件。

如果您想查看一些详细信息,read this paper

关于php - 什么是安全 token 以及为什么在表单中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15520977/

相关文章:

php - 如何从 preg_replace 中提取数据

javascript - 无法让谷歌地图与 requirejs 一起使用

php - 如何在 Laravel 中获取最后插入的 ID?

php - Codeigniter - 使用事件记录时处理错误

sql-server - 如何处理来自SQL Server用户的错误?

security - .htaccess密码保护允许127.0.0.1,但不允许本地主机

php - Mysql 查询在 Php 文件中不起作用

security - session ID 放置 : Form Hidden Field vs. HTTPOnly Cookie

security - Grails 和运行时动态修改

java.security.ProviderException : Could not initialize NSS