頁面組件安全防範

1、頁面標籤必須關閉,屬性值必須加引號。

在頁面中使用的標籤不關閉,屬性值不加引號往往成爲被攻擊點,攻擊者很容易的利用這些漏洞進行注入。避免這些漏洞的出現可以提高被攻擊的可能。

2、Form提交方式必須選用POST

Form默認的提交方式是Get,這種方式將表單中數據的按照variable=value的形式,使用“?”添加至Action所指向的URL後面,各個變量之間使用“&”連接。所要傳遞的信息量除受URL長度限制之外,信息內容都顯示暴露。

在使用Form的時候必須將提交方式置爲POST。示例:

<form action="…" method="post" target="_blank">…</form>

 3、所有的非ASCII字符在URL中傳遞時都需要按照協商好的編碼方式做URL編碼。

推薦使用encodeURI、encodeURIComponent或者自定義encode實現。encodeURI、encodeURIComponent默認都返回UTF8編碼的URL,區別在於encodeURI方法不會對下列字符進行編碼: ":"、"/"、";" 和 "?"。而encodeURIComponent則會對這些字符進行編碼處理。

4、儘量使用對象的innerText,不要使用innerHtml屬性。

對象的innerText屬性默認會對輸入的數據進行encode,使得如果數據的數據還有html可執行標記時不會直接執行,而如果使用innerHtml屬性的話不會保障。

<SPAN id=”Addr”></SPAN>

<Script>

  // Using innerText renders the content safe.Addr.innerText=”…”;

  //Using innerHtml requires the use of HtmlEncode to make it safe.Addr.innerHtml=””;

</Script>

 5、輸入框設置最大長度、輸入數據類型限制。

輸入框一般是攻擊者比較鐘意的攻擊對象,攻擊者可以通過輸入框限制不足的弱點進行數據竊取(比如SQL注入)、或者製造迫害(如比XSS)。我們可以通過對輸入框最大長度、輸入數據類型的限制,從一定程度上防範這樣的攻擊。我們可以根據實際需求,對一些輸入框限定只允許輸入字母、數字等。同時對輸入的數據長度做限制。

6、關閉客戶端自動完成功能,減少駐留在客戶端數據。

<FORM … AUTOCOMPLETE=”OFF”/>

<INPUT … AUTOCOMPLETE=”OFF”/>

7、設置<Frame>/<iFrame>受限,防止腳本執行。

將<Frame>/<iFrame>中security屬性設置爲restricted後, Frame中的腳本將不能執行(僅限於IE)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章