我有一個值,最終將是一個html id=
屬性。我無法控制設定值的設定,因此可能不安全。我知道檢查單引號和雙引號,但我是否檢查以確保它清潔?你如何保護CSS ID
variables.result &= '<div class="alert alert-danger"';
if(attributes.id != "") variables.result &= ' id="#attributes.id#"';
我有一個值,最終將是一個html id=
屬性。我無法控制設定值的設定,因此可能不安全。我知道檢查單引號和雙引號,但我是否檢查以確保它清潔?你如何保護CSS ID
variables.result &= '<div class="alert alert-danger"';
if(attributes.id != "") variables.result &= ' id="#attributes.id#"';
如果我理解正確,那麼這可能是你在找什麼:
http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer
編輯:在PHP中:
What's the best method for sanitizing user input with PHP?
EDIT2:沒」 t看你正在使用coldfusion,也許是這樣吧:
這看起來像一個客戶端工具。我正在尋找一個服務器端解決方案 –
如果使用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>
搜索逃生HTML(屬性)。然後不要緊。但是攻擊者仍然可以隱藏ID。 – user2864740
不知道如果我明白你想要什麼,但我的猜測是:''id =「#encodeForHtmlAttribute(attributes.id)#」''' – Alex
這是否也適用於風格和類? –