网络安全-如何防止模拟的http的恶意请求?

小组聊天灌水 小组聊天灌水 主题:993 回复:2175

网络安全-如何防止模拟的http的恶意请求?

夜无邪 发布于 2016-11-04 字数 512 浏览 1033 回复 12

我有一串URL www.abc.com?para=xxx
在页面中点击按钮后用ajax执行此URL后,后台会执行一些操作,页面通过ajax的响应结果继续完成接下来的操作。这里是没登录的情况下,没有用户标志这种session的。
但是如果遇到懂程序的人,如果发现了这个接口的调用方法,就可以使用一些Http模拟提交的工具来请求这个接口,从而引发系统安全问题。
我不想通过IP进行访问次数和访问时间的限制,同样不想使用验证码,这样很影响用户使用的体验。
用HTTP_REFERER来判断HTTP来路,也不可靠,有没有什么更好的办法比较有效地阻止这种行为?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(12

清晨说ぺ晚安 2017-09-23 12 楼

我觉得不登录就能用的接口如果也能引发安全问题的话,这个属于设计问题吧……如果是Ajax登录之类的接口的话另当别论
浏览器能做的任何操作,程序都是可以模拟的。因为浏览器也是程序。因此所谓防范毫无意义。验证码之类的机制虽然可以防止全自动,但至少也可以半自动(手输验证码)。真正防范大量自动或半自动调用的方法只有按IP的访问量限制。
Session是没用的。Session是靠Cookies来工作的,清掉Cookies又是一个新的Session

综上所述,有用的方法就只有你说的那两种:通过IP进行访问次数和访问时间的限制,验证码
百度贴吧之类的大型网站防范程序发帖也是用的这两种方法,如果有更好的方法他们早就用了。可以考虑把这两种合起来,没超过访问次数和访问时间限制就正常访问,否则要求验证码,这样算是一个权衡吧。

瑾兮 2017-05-03 11 楼

HTTP_REFERER这个你是用的什么语言,整个数据必须用javascript获得,然后传给服务器,因为除了javascript其他语言的referer都是可以伪造的,javascript的不可以伪造,当然对于javascript也是有办法的,不过这个是最准确的,百度统计等等级网站都是用的javascript判断来路

归属感 2017-04-30 10 楼

要想完全安全只能走pki,那一套了。

夜无邪 2017-04-25 9 楼

1.假如是需要登录才可以调用的接口,那么每次进行操作的时候都进行登录判断即可。
2.假如是不需要登录可以操作的接口,那么就在ajax 的url 添加上 加密( 时间 + 常量 + ip)
后端反解密,成功代表请求正常,反之失败, 接受到数据的时候再判断下 一定时间内ip 请求次数是否过多,如果是的话 一直返回失败....

想挽留 2017-01-30 8 楼

www.abc.com?para=xxx&sign=md5(key.xxx)
接收para变量时,
验证sign

灵芸 2017-01-21 7 楼

可以对请求进行限制,如果不是采用ajax方式请求的可以拒绝请求
$AJAX = ('XMLHttpRequest' == @$_SERVER['HTTP_X_REQUESTED_WITH']);
if(!$AJAX) exit;
....

瑾兮 2017-01-17 6 楼

页面载入时服务器端产生加密key,js使用key加密参数,提交到服务器,由服务器解密后运行,解密失败的无视请求。

缺点也存在,那就是加密是在js处进行的,如果被人深入依旧可以使用程序调用。

限制这种调用的最优方法就是在服务器端,不想使用session登录信息判断的话,这就很难操作。只能将js复杂化,增加他人解读难度。

我不想通过IP进行访问次数和访问时间的限制,同样不想使用验证码,这样很影响用户使用的体验。

可以使用session进行时间间隔判断,例如载入页面到提交参数时间间隔过短的,很有可能是程序自动提交,毕竟浏览器载入,渲染都是需要时间的。

虐人心 2017-01-13 5 楼

如果你的应用不是到处都是这种按钮的话,最好的方法还是验证码和访问限制,如果很多,那还是优化流程设计减少按钮吧

泛泛之交 2016-12-20 4 楼

你要识别 机器与用户 只有 验证码一条路可以走了

泛泛之交 2016-12-05 3 楼

所有的登录请求都可被模拟,看模拟人水平如何了。杀毒软件也是先有病毒后杀毒,做不到完全的安全,只能通过一些手段减少。
一、通过后台你可以清楚看到恶意点击来源,IP直接禁止
二、系统会根据您的频率设置要求,一般的模拟都是有规律的。

增加 防恶意点击阻击功能
1、不采取动作:只记录不对恶意点击访客采取阻击动作,可以正常访问网站;
2、警告并提示收藏:提醒访客将网站添加到收藏夹,下次访问就不用再点广告链接进入网站(警告内容及收藏可以在全局参数设置中定义);
3、网站跳转:拒绝访客访问,直接转向用户自定义的网站;
4、关不掉的对话框:对方电脑弹出关不掉的对话框;
5、黑屏:对方电脑显示黑屏效果,关闭时出现关不掉的对话框;
6、弹窗死机:对方电脑不断弹出窗口,直到电脑资源耗尽瘫痪;
7、组合攻击:多种阻击联合执行
8、病毒植入:给恶意访客的电脑稙入病毒

清晨说ぺ晚安 2016-11-28 2 楼

服务端生成密钥,传递给客户端,服务端再验证

瑾兮 2016-11-21 1 楼

之前写过一篇文章《CSRF: 不要低估了我的危害和攻击能力》,比较长,就不贴过来了,需要的自己过去看~

大致总结如下,总体来说,预防CSRF主要从2个方面入手,分别是:
1、正确使用GET,POST和Cookie;
2、在non-GET请求中使用Security token;