coldfusion
  • sanitization
  • coldfusion-11
  • 2015-09-25 25 views 0 likes 
    0

    我有一個值,最終將是一個html id=屬性。我無法控制設定值的設定,因此可能不安全。我知道檢查單引號和雙引號,但我是否檢查以確保它清潔?你如何保護CSS ID

           variables.result &= '<div class="alert alert-danger"'; 
    if(attributes.id  != "") variables.result &= ' id="#attributes.id#"'; 
    
    +0

    搜索逃生HTML(屬性)。然後不要緊。但是攻擊者仍然可以隱藏ID。 – user2864740

    +1

    不知道如果我明白你想要什麼,但我的猜測是:''id =「#encodeForHtmlAttribute(attributes.id)#」''' – Alex

    +0

    這是否也適用於風格和類? –

    回答

    1

    如果我理解正確,那麼這可能是你在找什麼:

    http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer

    編輯:在PHP中:

    What's the best method for sanitizing user input with PHP?

    EDIT2:沒」 t看你正在使用coldfusion,也許是這樣吧:

    Cleansing string/input in Coldfusion 9

    +0

    這看起來像一個客戶端工具。我正在尋找一個服務器端解決方案 –

    1

    如果使用ColdFusion生成變量名稱,則可以使用Inflector CFC的「變量」方法。它會將任何字符串轉換爲安全的由下劃線分隔的列表,該列表可以用作ColdFusion變量名稱。 (變形器是基於Ruby on Rails的的ActiveSupport ::偏轉板類)。

    https://github.com/timblair/coldfusion-inflector

    <cffunction name="variablise" access="public" returntype="string" output="no" hint="Converts a string to a variable name, e.g. CamelCase becomes camel_case, 'big CSSDogThing' becomes big_css_dog_thing etc."> 
        <cfargument name="string" type="string" required="yes" hint="The string to variablise"> 
        <cfset arguments.string = replace(trim(rereplace(arguments.string, "([^[:alnum:]_-]+)", " ", "ALL")), " ", "-", "ALL")> 
        <cfset arguments.string = rereplace(arguments.string, "([A-Z]+)([A-Z][a-z])", "\1_\2", "ALL")> 
        <cfset arguments.string = rereplace(arguments.string, "([a-z\d])([A-Z])", "\1_\2", "ALL")> 
        <cfreturn lcase(replace(arguments.string, "-", "_", "ALL"))> 
    </cffunction> 
    
    相關問題