博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防跨站请求措施 (CSRF)
阅读量:2340 次
发布时间:2019-05-10

本文共 513 字,大约阅读时间需要 1 分钟。

使用表单提交数据到服务器是日常的程序行为,可很多同行并没有对伪数据跨站请求采取措施.

这里要谈的是服务器端跨站请求而不是JS脚本跨站攻击.相对而言,JS脚本跨站造成的危害会更大,防范措施类似SQL防注入.

现在要讲的是CSRF.

CSRF是什么呢?是指从我们的表单之外的其它地方伪造数据提交到处理程序的行为.

欺诈者经常使用这种方法提交垃圾数据,这些数据不但惹人生厌,而且很可能对站点造成破坏.

防范措施

我们可以随机生成一个乱数并将他储存到会话,然后让这个数字串随表单一起提交到服务器.

如果通过$_POST提交过来的乱数与$_SESSION的乱数一致,我们完全有理由认为这个提交是合法的.

在初始化时应该创建它:

session_start();if(!isset($_SESSION['token'])) {	$_SESSION['token'] = sha1(uniqid(mt_rand(), TRUE));}
在表单中应该有这个input

在获取表单数据时就可以这样判断了

if(isset($_POST['submit']) && $_POST['token'] == $_SESSION['token']) {

转载地址:http://rqwvb.baihongyu.com/

你可能感兴趣的文章
List vs tuple,何时使用? [重复]
查看>>
默认情况下,如何以管理员身份运行Visual Studio?
查看>>
通过varargs参数可能导致堆污染
查看>>
Git学习笔记1 神奇的git stash
查看>>
Unable to locate package错误解决办法
查看>>
关于service中添加Transaction注解后,service无法注入bean
查看>>
linux shell 自定义函数(定义、返回值、变量作用域)介绍
查看>>
写自己的ASP.NET MVC框架(上)
查看>>
C++和C在linux下编程和与在WINDOWS下有什么区别
查看>>
CSS 的优先级机制[总结]
查看>>
linux shell 数组建立及使用技巧
查看>>
IEnumerator 协程 全称协同程序
查看>>
java实现冒泡排序
查看>>
spring boot 初试,springboot入门,springboot helloworld例子
查看>>
Spring中配置和读取多个Properties文件--转
查看>>
使用JNI进行Java与C/C++语言混合编程(1)--在Java中调用C/C++本地库
查看>>
Mac 终端命令连接mysql
查看>>
Lua中的数学库
查看>>
多态小结
查看>>
Java连MySQL的驱动mysql-connector-java-5.1.21-bin.jar的安装方法
查看>>