在基于Apache的web服务器上,启用了Mod Security。使用我的Codeigniter代码,我从google存储一个位置的url。我创建了一个文本框,其中只需要嵌入标记的url部分,而不需要iframe标记,因为它在视图中是硬编码的。
因此,我试图通过代码点火器编码将google地图位置url保存在mysql数据库中。问题是,如果在服务器上启用了mod安全性,我会得到以下错误:
已禁用 您没有访问此服务器上的/UpdateContact的权限。
但是,如果我禁用了mod安全性,然后尝试再次提交url,它可以正常工作。
请告诉我如何解决这个问题,同时保持我的web服务器上启用的国防部安全。
更新
modsec_audit.log说:
消息:代码403 (第二阶段)拒绝访问。模式匹配“(?i:(?:\a AC.26^d)0xa-fd{3,}a-f\d*+”在ARGS:gmap。文件"/usr/local/apache/modsecurity-owasp-old/base_rules/modsecurity_crs_41_sql_injection_attacks.conf“id "981260”msg "SQL编码标识“.谷歌地图嵌入网址..。标签“OWASP_CRS/WEB_A1/SQL_INJECTION”标签"OWASP_TOP_10/A1“标签"PCI/6.5.2”Apache- ModSecurity:文件“ModSecurity”级别:%s%s uri "%s"%s‘%s’%s动作:截获(第2阶段)
一个简单的解决方案是通过ID删除规则号981260,但这将使服务器容易受到SQL注入攻击。
有什么出路吗?
随着我更多地使用,更新问题也在增加。
BIPAP或双水平气道正压机是一种非侵入式呼吸机,适用于被诊断患有睡眠呼吸暂停症的人,帮助他们在睡眠中获得更多的空气进入肺部。mod再次阻止它:"id“981256[数据”匹配的数据:在ARGS中找到s:“ id "959072“msg "SQL注入攻击”严重程度“关键成熟度"9”标签“”OWASP_CRS/WEB_ also /SQL_ Injection“标记"OWASP_TOP_10/A1”标签"PCI/6.5.2“rev "2”Data:‘不想使用西部commode) \xe2\x80\xa2 Lid选项\xe2\x80\xa2坚固(在ARGS中找到: data :转换器马桶有助于降低安装西方commode的成本,并节省时间。它可以在任何印度厕所的任何地方使用。特点:\xe2\x80\xa2可折叠(为其他不想使用西式楼梯的家庭成员提供方便) \xe2\x80\xa2盖子选项\xe2\x80\xa2坚固(底部有额外支持以防止下落) \xe2\x80\xa2防锈(粉剂co.“成熟的"8“标记"OWASP_CRS/WEB_ATTACK/XSS”标记"WASCTC/WASC-22“标记”OWASP_App传感器/IE1“ id "950001“msg "SQL注入攻击”关键“rev "2”数据“匹配数据:升级-不安全--在TX:sqli_select_statement_count: 3”成熟度"8“标签”中找到的请求“OWASP_CRS/WEB_ tag /SQL_ Injection”标记"OWASP_TOP_10/A1“标记"PCI/6.5.2” 模式匹配"\b(?i:having)\b\s+(\d{1,10}|'^={1,10}')\s*=<>|(?i:\bexecute(\s{1,5}\w.${1,5}\s{0,3})?()|\bhaving\b?(?:\d{1,10}\‘\“{1,10}\’”) ?=<>+|(?i:\bcreate\s+?table.{0,20}?()|(?i:\blike\W*?char\W*()\x{e76f}(?i:(?:)(选择(.*.)在ARGS:fpara.文件"/usr/local/apache/modsecurity-owasp-old/base_rules/modsecurity_crs_41_sql_injection_attacks.conf“id "959070”msg "SQL注入攻击“[s 模式匹配"(?i:(?:\s()case\s*()|(?:)\s*?like\s*()|(?:having\s*^\s+\s*^\w\s)|(?:if\s?(\d\w\s*=<>~))“在ARGS:desc。档案"/usr/local/apache/modsecurity-owasp-old/base_rules/modsecurity_crs_41_sql_injection_attacks.conf“id "981241”数据匹配的数据:骨折,发现在ARGS:超级医生保健有广泛的助行器,用于骨折,瘫痪,膝关节置换,髋关节置换术。标签"OWASP_CRS/WEB_ATTACK/SQL_INJECTION“
我检查了用户的输入,它只是用英文写的关于一个产品的正常段落。这真的很糟糕,怎么摆脱它呢?
发布于 2019-08-12 18:47:44
一个简单的解决方案是通过ID删除规则号981260,但这将使服务器容易受到SQL注入攻击。
这不是真的。ModSecurity的工作方式是编写一些试图解决攻击的通用规则。有许多的假阳性与ModSecurity这样的WAF,它们必须调优,以专门为您的网站工作。是的,运行所有警报将使您的站点成为最安全的,但它也会破坏大多数网站,即使这样,WAF也不是绝对的安全保证。你不应该害怕调整你的规则。
在本例中,您有一个文本框,该文本框接受URL (很可能有编码的参数),该规则旨在阻止URL编码的参数,因为它们可能是攻击的标志。然而,我们知道这是预期的,所以这不是攻击的迹象。因此,对于此输入,应关闭此规则。如果您看一下规则定义,它已经忽略了一些众所周知的参数,这些参数包括像您这样的URL,并且它的检查将失败(比如__utm和_pk_ref),所以它是完全可以接受的(并且是预期的!)来调音这个。
在加载带有规则981260的配置文件后,您需要添加以下配置(因为更新了以前定义的规则,所以更新的规则必须在读取时定义):
SecRuleUpdateTargetById 981260 !ARGS:'gmap'这将只对此参数关闭此规则,并允许此规则继续保护其他参数。
老实说,我不认为这条规则那么有用,因为在使用所以我经常把它完全关掉的许多参数中,使用SecRuleRemoveById 981260会得到很多错误的结果。这是否意味着网站受到的保护稍微少了一点?是的,但您应该权衡这种保护是否值得支持它和/或从您的站点中删除字段和功能,以使您能够运行此规则。安全是关于平衡而不是绝对的。
顺便说一句,OWASP CRS (v3)的最新版本致力于减少假阳性的数量,尽管看起来这条规则(在v3中被重新编号为942450 )基本上没有改变:https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.2/dev/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf无法帮助这种特殊情况,但您应该考虑升级。
https://stackoverflow.com/questions/57456105
复制相似问题