mod_security日志报告缺少User-Agent并阻止Ajax请求403,但存在User-Agent

时间:2017-01-16 16:28:25

标签: javascript angularjs ajax user-agent mod-security

从日志中我得到错误

  

ModSecurity:使用代码403拒绝访问(阶段2)。   运营商EQ在REQUEST_HEADERS处匹配0。   [msg"请求缺少用户代理标题"] [严重性"通知"]   [tag" OWASP_CRS / PROTOCOL_VIOLATION / MISSING_HEADER_UA"]

但是当我登记网络>标题存在的XHR标签:

  

User-Agent:Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 55.0.2883.87 Safari / 537.36

我使用标准的AngularJS:

const ajax = function(data, url, completeFn, errorFn){
$http({
  method: 'POST',
  url: url,
  data:data,
  headers:{
    'Accept': "application/json",
    'Content-Type': "application/json"
  }
})
.then( completeFn, errorFn );}

后来被

打电话
this.select_all = function( callback ){
 ajax({action: 'select_all'}, url, 
    function(response){
      self.allFolders = response.data;
      if(callback){ callback(response); }
    }, 
    defError
 );}

我正在使用mod_rewrite规则:

<IfModule mod_rewrite.c>
  RewriteEngine On
  Options FollowSymLinks
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /webpage/#/$1 [L]
</IfModule> 

当我完全禁用mod_security时,一切正常。但我不确定我是否愿意这样做。我用谷歌搜索了2个小时,无法找到类似问题。我一定做错了什么。应该怎么做?

0 个答案:

没有答案