这有点类似于403 Forbidden Error, probably ModSecurity
我有一个网页上的表格,这是为了提交数学方程式和内容。当正确地使用时,字段将包含不安全的字符“、<、>、&、和‘i’是用
", <, >, &, ' and `在将表单从网页提交到PHP脚本之前,我使用上述HTML实体对不安全的字符进行编码/转义。因此,尽管字段合法地包含了不安全的字符,但提交的表单没有。在我的post中,我首先检查了$_POST['formFieldData'];,如果它包含任何不安全的字符,那么我立即并悄悄地中止了对整个帖子的处理。我的想法是,合法使用我的网页上的表单不会包含任何不安全的字符。因此,如果有人使用针对我的PHP脚本的表单设置了自己的页面,他们就无法发送不安全的字符。我只使用编码的不安全字符HTML实体将数据写入浏览器屏幕。
最初(几年前),当我设置表单时,原始数据(合法地包含不安全字符)被发布到PHP脚本中,编码不安全字符后被回放回浏览器,然后将数据发送给我以进行进一步的处理和存储。我收到了大量来自机器人或其他形式的诈骗/钓鱼/垃圾邮件。为了减少这些内容的数量,并且仍然允许合法的内容,我在我的网页上实现了编码,并拒绝了包含不安全字符的不可启动的帖子。一整晚,它们的体积都降到零了。我必须补充的是,我还认为. : ; / \ @不安全,并对它们进行编码/转义,如果它以未编码的形式包含它们,则删除post。
最近,即使有了上面的清理/逃逸,我也开始收到用于XSS过滤的假阳性mod安全旅行,这阻止了提交到php文件进行处理。消息是“潜在的跨站点脚本攻击”
不幸的是,托管公司并没有将这些旅行记录在用户日志文件中,所有这些都告诉我有旅行,他们给我发送了规则。
我在这篇文章的末尾粘贴了这个规则,因为规则中有大量的文本。
托管公司有两个建议:白名单规则,使它不适用于我的网站。关掉防盗器。如果可能的话,我宁愿不这样做。
规则的末尾是代码t:htmlEntityDecode,这给了我这样一个想法,即规则正在取消对内容的转义,从而使我的html转义失败。
我开始使用Javascript替换.replace(/&#x/g, "x#&");来混淆我已经转义的内容,例如,在PHP处理文件中,"变成了服务器上的x#&22;,然后用$form_Data = str_replace("x#&“、"&#x”、$form_Data)消除了这一混乱;
这是完美的工作,即国防部的安全过滤器没有绊倒的内容,以前造成错误的。
这是一个黑客,但我认为我别无选择,只能做某种黑客。
下面详细介绍的规则看起来就像一个巨大的正则表达式,加上一些对unesape、HTMLentities、compressWhitespace等的指令。
如果知道这些过滤器的人能对任何方法提出一些建议,我将非常感激。在从网页上发布表单内容之前,我可以使用这些方法对表单内容进行预处理,以使其更好地抵御误报。
提前谢谢。
这一规则是:
Rule 340147: Generic XSS filter
SecRule ARGS|ARGS_NAMES|!ARGS:js_includes|!ARGS:/m1_source/|!ARGS:/geodir/|!ARGS:/banner_block/
|!ARGS:/introcopy/|!ARGS:eingabe|!ARGS:ausgabe|!ARGS:/previewdata/|!ARGS:/tracking_extra/
|!ARGS:/^groups/|!ARGS:video|!ARGS:/google_map/|!ARGS:/field_map/|!ARGS:/gacode/|!ARGS:code1
|!ARGS:ga_code|!ARGS:customized|!ARGS:code_analytics|!ARGS:uvod|!ARGS:/^field_video/|!ARGS:q
|!ARGS:/^textarea-video/|!ARGS:leirro|!ARGS:lomake|!ARGS:vastaus|!ARGS:/^texte$/|!ARGS:vraag
|!ARGS:qti_data|!ARGS:tracklist|!ARGS:i_google|!ARGS:code_area_text|!ARGS:/log_code/
|!ARGS:/^ADVERT_/|!ARGS:UserData|!ARGS:areas|!ARGS:templatecode|!ARGS:/prevObject/
|!ARGS:/replaceAll/|!ARGS:/insertBefore/|!ARGS:/insertAfter/|!ARGS:/prependTo/|!ARGS:/appendTo/
|!ARGS:/mapcode/|!ARGS:googleCode|!ARGS:/sidebar/|!ARGS:/ad_code/|!ARGS:/^recipient/
|!ARGS:optional_head|!ARGS:/^form/|!ARGS:/^var_value/|!ARGS:variable_data|!ARGS:/^instance/
|!ARGS:/customfield/|!ARGS:notice|!ARGS:/formcode/|!ARGS:/ajax/|!ARGS:all|!ARGS:allowedTags
|!ARGS:/google_analytics/|!ARGS:/widget/|!ARGS:ad_code|!ARGS:/keycaptcha_code/|!ARGS:/jscode/
|!ARGS:postcontents|!ARGS:/adsense/|!ARGS:video1|!ARGS:/updateAds/|!ARGS:map|!ARGS:gmapcode
|!ARGS:/^Sidebar/|!ARGS:/^wpTextbox/|!ARGS:paragrafo|!ARGS:/question/|!ARGS:/style/
|!ARGS:tracking_code|!ARGS:whats-new|!ARGS:analyticscode|!ARGS:top_news|!ARGS:data[config]
|!ARGS:fulltext|!ARGS:introtext|!ARGS:offertext|!ARGS:block|!ARGS:livezillacode|!ARGS:/embed/
|!ARGS:/desc/|!ARGS:/script/|!ARGS:/^p_process_chats/|!ARGS:obj_itop|!ARGS:/cms/
|!ARGS:eventDescription|!ARGS:/^product/|!ARGS:match_report|!ARGS:eip_value|!ARGS:/^usergroup/
|!ARGS:sendDescription|!ARGS:email_id|!ARGS:obj_itop|!ARGS:sml_prt_1|!ARGS:pay_inst_1
|!ARGS:/^jform/|!ARGS:phpcode|!ARGS:intro|!ARGS:Snippet|!ARGS:oid|!ARGS:Submit2|!ARGS:/^obj_/
|!ARGS:layout|!ARGS:pageset|!ARGS:contact_form_information|!ARGS:/^site_/|!ARGS:/^translations/
|!ARGS:create_tables|!ARGS:insertfile|!ARGS:video_credits|!ARGS:input[Desarrollo]|!ARGS:move2
|!ARGS:hoperation|!ARGS:login_form|!ARGS:/product_benefits/|!ARGS:/custom_code/|!ARGS:arg2
|!ARGS:resumoDetalhe|!ARGS:bbcode_tpl|!ARGS:Right_photo_1|!ARGS:embedVideo|!ARGS:/^K2ExtraField/
|!ARGS:mentorhelp|!ARGS:/submitcode/|!ARGS:beschrijving|!ARGS:custombannercode|!ARGS:bannercode
|!ARGS:privatecapacity|!ARGS:diz|!ARGS:FormLayout|!ARGS:/^fck/|!ARGS:parent_name
|!ARGS:/^code_tscript/|!ARGS:_qf_Group_next|!ARGS:project_company|!ARGS:categories_title
|!ARGS:antwoord|!ARGS:project_company|!ARGS:signature|!ARGS:paepdc|!ARGS:tpl_source
|!ARGS:teaser_js|!ARGS:/^autoDS/|!ARGS:FrmSide|!ARGS:mainKeywords|!ARGS:/VB_announce/
|!ARGS:guardar|!ARGS:/serendipity/|!ARGS:omschrijving|!ARGS:resolution|!ARGS:newyddionc
|!ARGS:bericht|!ARGS:property_copy|!ARGS:/^outpay/|!ARGS:bedrijfsprofiel|!ARGS:s_query
|!ARGS:finish_survey|!ARGS:photolater|!ARGS:ticket_response|!ARGS:/element/
|!ARGS:option[vbpclosedreason]|!ARGS:/introduction/|!ARGS:/contenido/|!ARGS:/sql/
|!ARGS:prefix|!ARGS:query|!ARGS:c_features|!ARGS:/tekst/|!ARGS:embeddump|!ARGS:other_clubs
|!ARGS:/^elm/|!ARGS:/^saes/|!ARGS:dlv_instructions|!ARGS:/^cymr/|!ARGS:_qf_Register_upload
|!ARGS:/^elm/|!ARGS:verbiage|!ARGS:news|!ARGS:/^wz/|!ARGS:tiny_vals|!ARGS:sSave|!ARGS:/article/
|!ARGS:/about/|!ARGS:/Summarize/|!ARGS:/^product_options/|!ARGS:/SiteStructure/|!ARGS:/anmerkung/
|!ARGS:/summary/|!ARGS:/edit/|!ARGS:reply|!ARGS:/story/|!ARGS:resource_box|!ARGS:navig
|!ARGS:preview__hidden|!ARGS:/page/|!ARGS:order|!ARGS:/post/|!ARGS:youtube|!ARGS:reply
|!ARGS:business|!ARGS:/homePage/|!ARGS:pagimenu_inhoud|!ARGS:/note/|!ARGS:Post|!ARGS:/^field_id/
|!ARGS:area|!ARGS:/detail/|!ARGS:/comment/|!ARGS:LongDesc|!ARGS:ta|!ARGS:Returnid|!ARGS:busymess
|!ARGS_NAMES:/^V\*/|!ARGS_NAMES:/^S\*/|!ARGS:/^quickrise_advertise/|!ARGS:rt_xformat
|!ARGS:/wysiwyg/|!ARGS:contingut|!ARGS:/^werg/|!ARGS:/body/|!ARGS:/css/|!ARGS:/^section/
|!ARGS:/msg/|!ARGS:t_cont|!ARGS:/^doc/|!ARGS:/xml/|!ARGS:tekst|!ARGS:formsubmit
|!ARGS:invoice_snapshot|!ARGS:submit|!ARGS:/html/|!ARGS:/content/|!ARGS:/footer/|!ARGS:/header/
|!ARGS:/footer/|!ARGS:/link/|!ARGS:text|!ARGS:txt|!ARGS:/refer/|!ARGS:/referrer/|!ARGS:/template/
|!ARGS:/ajax/ "(?:< ?script|(?:<|< ?/)(?:(?:java|vb)script|about|applet|activex|chrome)|
< ?/?i?frame|\%env)" \Potential Cross Site Scripting Attack'
"phase:2,deny,status:406,t:none,t:removeNulls,t:utf8toUnicode,t:urlDecodeUni,t:htmlEntityDecode,
t:jsdecode,t:cssdecode,t:replaceComments,t:compressWhitespace,t:lowercase,capture,id:340147,
rev:137,severity:2,msg:'Atomicorp.com WAF Rules: ,logdata:'%{TX.0}'"发布于 2014-12-31 15:45:42
如果知道这些过滤器的人能对任何方法提出一些建议,我将非常感激。在从网页上发布表单内容之前,我可以使用这些方法对表单内容进行预处理,以使其更好地抵御误报。
base64?
当正确地使用时,字段将包含不安全的字符
"、<、>、&、'和‘
那么mod_security对您来说不是一个好的工具选择。(我个人认为,像这样的输入过滤规则对任何人来说都不是个好主意。)
这是一个黑客,但我认为我别无选择,只能做某种黑客。
有人把mod_security强加给你了吗?通过隧道通过它,你是使它在任何情况下无效,所以它是一个无望的浪费时间(甚至比正常)。
https://stackoverflow.com/questions/27713194
复制相似问题