我需要一些幫助,以刪除或重複的非單詞字符,如在HTML文本區中導致modsecurity錯誤的換行符。我正在做一個textarea的簡單的HTML表單,遊客可以填寫:刪除或重複的非單詞字符,如在HTML文本區中導致modsecurity錯誤的換行符
Your question:<br>
<textarea name="question" cols=100 rows=8></textarea>
接下來,我使用gen_validatorv4.js
驗證輸入
frmvalidator.addValidation("question","maxlen=800", "Max length is 800 characters");
上提交表單的動作是一個腳本contact-form-handler.php
其執行以下操作:
$question = $_POST['question'];
我的問題是,當顧客進入多個換行符(回車,回車)ModSecurity的返回訪問到C錯誤防塵帶外形handler.php被拒絕:
Message: Access denied with code 403 (phase 2). Pattern match "\\W{4,}" at ARGS:bericht. [file "/usr/share/modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "155"] [id "960024"] [rev "2.2.5"] [msg "SQL Character Anomaly Detection Alert - Repetative Non-Word Characters"] [data "\x0d\x0a\x0d\x0a"]
Action: Intercepted (phase 2)
Apache-Handler: application/x-httpd-php
Stopwatch: 1414686989441629 117554 (- - -)
Stopwatch2: 1414686989441629 117554; combined=91683, p1=11515, p2=79432, p3=0, p4=0, p5=731, sr=815, sw=5, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.6.6 (http://www.modsecurity.org/); OWASP_CRS/2.2.5.
Server: Apache/2.2.22 (Debian)
我與未即使在PHP腳本處理的第二(虛擬)textarea的嘗試,然而ModSecurity的阻止訪問該腳本。當多個換行符被刪除時,表單被成功處理並通過msmtp發送。
而不是減輕modsecurity規則(不知道該怎麼做)我覺得更像是在PHP腳本處理之前刪除HTML聯繫表單中的多個換行符(和空格)。我發現了一些準則,採取以下JavaScript格式可以這樣做:
txt = txt.replace(/(\r\n|\n|\r)/gm," ");
,但我錯過了知識養活「問題」這個命令,然後使其可用於PHP的命令$question = $_POST['question'];
任何人的幫助?
在這裏需要注意的一件事是,我需要編輯規則一個新的ID - modsec不會讓我重新添加一個具有相同ID的規則。 – Shorn 2016-08-09 01:43:06