怎样防止表单被fsocket,curl这类循环恶意提交?
比如 这是你的脚本, add.html
$url = 'www.test.com/member/add';
$data = {name : 'jim', 'age' : '19'};
$.ajax({
url : $url,
method : 'post',
data : $data,
success : function(){}
})
然后服务器端add.php就做一些存储
但是有个问题是可以在本地 localhost/add.php这样提交
for($i=1; $i<10000; $i++){
curl($url, $data);
}
1.我知道验证码是一个方法
2.表单hash我估计没啥用 可以在循环之前
file_get_content('www.test.com/add.html');
抓到那个值
3. 是不是在服务器端做一些$_SERVER的header的判断? refer host这些可以伪造啊 我知道ajax有同源策略
如果判断了x-request-with是可以阻挡的, 但这个例子是ajax的 我想知道不是ajax的又是如何判断?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
防爬虫没办法绝对的,只能尽量提高他爬得成本
比如用js通过复杂的计算方法来获得验证码,让他很难用别的语言写出相同的过程,即使实现了也会带来高占用
这种循环提交已经可以算DDOS了,防DDOS没有一本万利的方法
比如可以限制IP提交频率等等