2009-09-04 24 views
1

第三方Web應用程序存在交叉腳本安全問題。有一頁有三個未被消毒的字段。供應商不會提供及時的修復,我需要。防止XSS嘗試Tomcat/Struts 1 Web應用程序(無源代碼)

的應用程序在Tomcat上運行,並且使用的Struts 1.壞頁面的操作是這樣的:

<action 
    path="/badpage" 
    type="com.badvendor.BadAction" 
    name="badForm" 
    scope="request" 
    validate="true" 
    input="/otherbadpage.do"> 
    <forward name="failure" path="/otherbadpage.do"/> 
    <forward name="success" path="/otherbadpage.do"/> 
</action> 

我沒有爲動作類的源代碼。

什麼是最簡單的方法之間的請求和行動來消毒輸入(甚至只是導致錯誤輸入)?

+0

不用編寫代碼就可以解決這個問題。有沒有辦法只添加配置文件的驗證規則? – 2009-09-04 20:28:31

+0

@Jeremy - 這個應用程序使用Struts驗證器嗎? (http://struts.apache.org/1.3.10/faqs/validator.html)如果是這樣,是的,你可能會添加驗證規則而不改變java代碼 – ChssPly76 2009-09-04 20:38:47

+0

@ ChssPly76 - 不,它不是,但可以'我只是啓用它?或者是否需要代碼支持? – 2009-09-04 20:43:56

回答

2

您可以:

  1. 改變映射指向一個不同的動作(你的)。消毒輸入後,將控制權轉移至相關操作。
  2. 編寫一個servlet過濾器來攔截該特定的URI。