搜索

首页  >  问答  >  正文

php - ajax服务端脚本防止请求攻击的方法

关于,防止用户通过ajax的接口来模拟登录或者进行其他方式来进行请求,比如写了个脚本或手动不停的请求你这些ajax方法。怎么样来防止?

PHPzPHPz2830 天前433

全部回复(2)我来回复

  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:47:43

    1. 验证是否AJAX请求。如PHP代码:
    define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
    

    (这一步的环境变量可以伪造,但是能过滤掉很多骇(xiao)客(bai))
    2. 频率限制。针对IP的限制,可以在服务器层做(Tengine就有这样的功能)。针对已登录用户的频率限制,豆瓣就是这样做,超出频率就要输入验证码。
    3. csrftoken的方式,个人觉得意义不大。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 14:47:43

    首先,没有绝对的方案来杜绝这种情况的发生。

    其次,能考虑的方案也无非两种:
    1.验证来路
    2.增加验证数据(比如类似cookie、hidden input)csrftoken类似与hidden input了。

    有些变态会搞验证码- -#

    回复
    0
  • 取消回复