首頁>Program>source

我是ColdFusion的新手,所以我不確定是否有簡單的方法来執行此操作.我已被分配在此CF網站上修複整个網站的XSS漏洞.不幸的是,有成千上万的頁面正在接受使用者輸入,几乎無法进入並修改所有頁面。

(在CF或JS中)有没有一種方法可以轻松地阻止整个站點的XSS攻击?

最新回復
  • 9天前
    1 #

    我讨厌向您透露此資訊,但是-

    XSS是一个輸出問题, not 輸入問题.過濾/驗證輸入是額外的防御層,但是它永远無法完全保護您免受XSS的侵害.看看RSnake的XSS速查表-逃脫過濾器的方法太多了。

    没有簡單的方法来修複旧版應用程式.您必须對放置在html或javascript檔案中的所有內容进行正確的編碼,這確實意味着要重新檢查每一个生成html的代碼。

    有關如何預防XSS的資訊,請參阅OwASP的XSS預防備忘單。


    下面的一些評論表明,輸入驗證比輸出時进行編碼/轉義是更好的策略.我只引用OwASP的XSS預防備忘單-

    Traditionally, input validation has been the preferred approach for handling untrusted data. However, input validation is not a great solution for injection attacks. First, input validation is typically done when the data is received, before the destination is known. That means that we don't know which characters might be significant in the target interpreter. Second, and possibly even more importantly, applications must allow potentially harmful characters in. For example, should poor Mr. O'Malley be prevented from registering in the database simply because SQL considers ' a special character?

    详细說明-当使用者輸入O'Malley這樣的字元串時,您不知道是否需要使用javascript,html或其他語言的字元串.如果使用javascript,則必须將其渲染為 O\x27Malley ,並且如果為HTML,則外观應為 O'Malley .這就是為什麼建議將字元串完全按照使用者輸入的方式儲存在資料庫中,然後根据字元串的最终目標對它进行適当的轉義的原因。

  • 9天前
    2 #

    < p>您應该看的一件事是實現像Portcullis這樣的應用程式防火墙:http://www.codfusion.com/blog/page.cfm/projects/portcullis,它包括一个比內建的scriptProtect更強大的系統,该系統很容易被击败.

    這是防止许多攻击的一个很好的起點,但是對於XSS,您將不得不手工操作並驗證是否在客戶端或客戶端可以觸摸的任何輸出上使用诸如HTMLEditFormat()之類的东西.資料以防止輸出有效的html / js代碼。

  • 9天前
    3 #

    ColdFusion 9 Livedocs描述了一个名為" scriptProtect"的設置,该設置使您可以利用ColdFusion的保護.我還没有使用過,所以我不確定它的有效性。

    但是,如果您實現第三方或自己的方法来處理它,則很可能要將其放在應用程式的" onRequestStart"事件中,以允许它處理涉及URL的整个網站 和FORM範圍违規(因為每个請求都將執行该代碼)。

  • 9天前
    4 #

    除了應用所有ColdFusion修補程式和修補程式之外,您還可以:

    不是完整的證据,但有帮助,請在CFADMIN>設置>"啟用全域性指令碼保護"下进行以下設置

    將CSRFToken添加到您的表單http://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet

    檢查http Referer

    為所有使用者輸入添加驗證

    使用cfqueryparam进行查詢

    在任何輸出上添加HTMLEditFormat()

    除了彼得·弗赖塔格(Peter Freitag)的出色博客外,您還應该订阅杰森·迪恩(Jason Dean)的http://www.12robots.com

  • html:POST和PHP中的原始POST有什麼區別?
  • testing:自定義TestNG可通過電子郵件發送報告的摘要部分