簡體   English   中英

如何忽略ESAPI異常“org.owasp.esapi.errors.IntrusionException:輸入驗證失敗”?

[英]how to ignore ESAPI exception “org.owasp.esapi.errors.IntrusionException: Input validation failure”?

我的項目(基於JSP,Struts,hibernate構建)從用戶獲取輸入並將其保存在數據庫中。 為了使我的應用程序安全,我使用了ESAPI jar。

我越來越異常了

org.owasp.esapi.errors.IntrusionException:輸入驗證失敗

在方法ESAPI.encoder().canonicalize();

當我們從Skype,MS Word等復制和粘貼數據時,通常會出現此異常。

當我從skype messenger復制粘貼字符串時,它會自動添加帶有div,meta,p等的額外樣式數據(所有HTML標記),這會導致添加許多可能導致上述異常的特殊字符。

但是,當我從記事本中復制字符串時,它不會給出異常。

如何忽略此異常,以便可以添加數據? ESAPI.properties或validation.properties中是否有需要修改的內容? 你有什么看法?

我認為,當您從(例如)MS Word中粘貼某些內容而不是從諸如記事本之類的簡單內容中粘貼內容時,您的怪異問題與其他編碼有關。 當你在Word中時,它會獲取一些額外的元數據,而來自“MS Word”的默認“粘貼”實際上是“粘貼特殊”。 這樣做是為了使您可以將文本從一個Office應用程序復制到另一個(例如,Word到Outlook)並“保留格式”。 我認為所有這些額外的元數據都會讓你感到煩惱,因為它可能看起來像ESAPI,因為它是多編碼的,或者它認為使用了混合編碼。

也就是說,如果你想進行驗證,你真的應該使用Validator.isValidInput()或Validator.getValidInput()方法之一。 默認情況下調用Encoder.canonicalize()(除非您使用'develop'分支中的最新ESAPI,您可以在其中實際禁用規范化 - 最近的錯誤修復)。

-kevin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM