php如何防止模拟请求
程序员文章站
2022-04-11 21:27:37
...
本文主要和大家分享php如何防止模拟请求的方法,希望能帮助到大家。
1.一些网站是采用检测此IP地址登录的密集度,多次登录后需要输入验证码,那么这时CURL模拟的提交就需要去对验证码图片进行分析,这样就会花费大量时间,当然,这种是对于防止登录被爆破,用户资料泄露的。
2.还有一种就是直接在session保存生成的随机码,然后放在input的隐藏域,这种比验证码那种差了许多。
3.注意javascipt本身是无法跨域提交的,不是因为不能做到,而是防止别人恶意偷取用户信息,例如点击打开他的网站,用iframe打开正规网页,然后在另一个iframe中进行偷取。
要实现ajax跨域访问,需要设置
header("Access-Control-Allow-Origin:*"); //跨域权限设置,允许所有
要防止ajax跨域访问,需要设置
header("Access-Control-Allow-Origin:http://www.test.com"); //只允许test.com跨域提交数据
4.如果要防止php的模拟请求,比如post请求,那么就可以设置必须为ajax请求才能处理。
//判断是否为ajax请求,防止别人利用curl的post抓取数据 if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ }
完整解决方案:
header("Access-Control-Allow-Origin:http://leshen.applinzi.com/cet"); //只允许本站提交数据,前端防ajax跨域,其实js本来就不能跨域 //判断是否为ajax请求,后端防止别人利用curl的post抓取数据 if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ //处理业务逻辑 }else{ echo "we caught you! you have no access!"; };
以上就是php如何防止模拟请求的详细内容,更多请关注其它相关文章!
上一篇: 分享Python常用的排序实例
下一篇: python局部赋值的规则
推荐阅读
-
PHP模拟发送POST请求之三、用Telnet和fsockopen()模拟发送POST信息,telnetfsockopen_PHP教程
-
如何使用nginx或php将请求转发到另一个地址
-
PHP如何获取DELETE请求的参数
-
php curl模拟post请求和提交多维数组的示例代码_PHP
-
php 模拟请求 页面跳转有关问题
-
求帮忙修改个php curl模拟post请求内容后并下载文件
-
如何模拟SQLServer的两个日期处理函数_PHP教程
-
php中如何防止表单的重复提交_PHP教程
-
验证码-php中如何用curl模拟http头信息进行模拟登陆并获取信息
-
在console中看到AJAX请求要用1.5S左右,如何去测试PHP代码中是哪一段比较费时间,用什么工具可以看到整个运行过程吗?