我已經爲我的用戶創建了一個文本框來輸入他們的評論。因此,他們有時會複製應用程序中出現的錯誤,並將其與評論一起粘貼到文本框中。它可能包含非法字符(例如</11>
),但應保存但我的.aspx不允許。我不知道如何處理這個問題。謝謝!允許文本框中的非法字符
回答
如果你想用戶編輯文本框並輸入html標籤你可以通過
<%@ Page validateRequest="false" ...>
或在web.config中爲您的整個應用程序:
<system.web>
<page validateRequest="false" />
</system.web>
注意這個ValidateRequest屬性是不存在的,而不 原因。當您更改其默認值時,不安全的輸入將會被接受,即 。正因爲如此,你需要每一個用戶的輸入進行驗證,以 避免交叉站點腳本攻擊,如惡意 啓用JavaScript,ActiveX,閃存插入或HTML
另一種聰明的解決辦法就是通過JavaScript更換用戶編寫的文本,以確保安全性。
< anyword>
,而不是<anyword>
被認爲是安全的!
function validateTxt() {
$("textarea, input[type='text']").change(function() {
html = $(this).val(); //get the value
//.replace("a" , "b") works only on first occurrence of "a"
html = html.replace(/< /g, "<"); //before: if there's space after < remove
html = html.replace(/</g, "< "); // add space after <
$(this).val(html); //set new value
});
}
$(document).ready(function() {
validateTxt();
});
感謝您的回覆。你的意思是,我們可以通過非法角色之前或之後的空間來解決這個問題。如果是這樣,我們必須爲所有非法字符做什麼? – dotnetrocks
我的解決方案解決了「<」字符的問題,這是非法的,因爲它允許用戶生成HTML標籤。 「
在傳輸它之前,您可以嘗試在Base64中對內容進行編碼。但我不確定我的解決方案是否真的很好。
http://nolovelust.com/post/classic-asp-base64-encoder-decoder.aspx
我假設你正在談論像一個異常消息「從客戶端檢測到有潛在危險的Request.Form值...」
是在行動asp.net請求驗證。這可以在頁面或網站級別禁用,但這樣做有風險。
它在頁面指令或web.config中使用ValidateRequest =「false」完成。
更多信息這裏: http://www.asp.net/learn/whitepapers/request-validation
感謝您的回覆!如果我使用ValidateRequest =「false」,我將在頁面中有其他控件,這將被驗證。 – dotnetrocks
ValidateRequest是一種防止腳本攻擊的方法;如果你禁用它,你接受指甲輸入。驗證器(ASP:RequiredFieldValidator,ASP:CompareValidator等)將起作用。無論如何,請看我的答案。 –
在頁面級別執行此操作將會禁用整個頁面的驗證以及所有控件 - 所以要小心。在web.config中這樣做會禁用整個網站 - 所有網頁上的所有控件 - 所以要小心。你的驗證仍然會執行。 emanuele greco提出了很好的觀點,並提供了一個很好的選擇,所以我也贊同這個答案。 –
這可能是由於HTML被拒絕服務器端,作爲一種安全預防措施。
您可以禁用此檢查有兩種方法:
添加下列屬性頁面頁眉<%@ Page validateRequest="false" %>
或進行更改應用廣泛的Web.Config中:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
- 1. 允許在文本框中輸入非英文字符
- 2. 只允許使用AngularJs的文本框中的字符
- 3. 如何只允許日文字符在文本框中
- 4. 只允許文本框中的特定字符
- 5. 限制在文本框中允許的字符(輸入金額)
- 6. 允許文本框中的特定字符C#
- 7. 輸入文本框字段只允許字符不允許數字,但允許空間?
- 8. 允許用戶在文本框中輸入轉義字符
- 9. 文本框掩碼只允許數字
- 10. 只允許在文本框C#數字
- 11. 文本框只允許使用字母
- 12. jsp中的文本框,僅允許文本,數字和逗號
- 13. 格式c#文本框只允許數字字符
- 14. 如何設置文本框的格式和允許的字符?
- 15. 只允許文本框中的整數
- 16. 允許HTML文本框中的空格
- 17. 只允許在asp.net中的文本框中輸入字母字符
- 18. JavaScript中不允許非英文字符的正則表達式
- 19. 如何防止非英文字符,並允許非字母字符
- 20. 非法修飾符,只允許final?
- 21. 只允許GWT中的文本框中的數字?
- 22. 如何只允許angularjs中的文本框中的數字?
- 23. 只允許在文本框中使用字母字符的模型驗證
- 24. 只允許在文本框中使用英文字符的正則表達式
- 25. 允許在文本框中使用HTML
- 26. 什麼是文本字段中允許的字符標準
- 27. 如何在reactjs中僅允許文本框中的數字?
- 28. CookieDecoder中允許的字符
- 29. 只允許在文本框中輸入數字和特殊字符( - )
- 30. 如何允許輸入文本和數字,但不允許特殊字符?
_「我的.aspx不允許」_您使用什麼代碼來保存,您得到了什麼錯誤? – CodeCaster
考慮我的答案:用JavaScript來處理由用戶插入的文本,但保留RequestValidation。 –