ASP(VBScript)中用於輸入處理的最佳方式(或至少最常見的方式)是什麼?我主要關注的是注入HTML/JavaScript注入&。是否有一些相當於PHP的htmlspecialchars
或addslashes
,等等?或者我必須手動使用類似字符串替換功能的東西嗎?如何防止ASP/VBScript中的注入?
1
A
回答
5
底線是這樣的:
- 總是HTML編碼用戶輸入你寫你的頁面之前。
Server.HTMLEncode()
是爲你做的。 - 始終使用參數化查詢來與數據庫接口。
ÀDODB.Command
和ADODB.CommandParameter
對象在這裏是正確的選擇。 - 始終在呈現頁面的IIS服務器上使用URLScan實用程序和IIS鎖定,除非它們是版本6或更高,不再需要這些工具。
如果你堅持要點1和2 slavishly,我想不出多少可以出錯。
大多數漏洞來自未正確編碼用戶輸入或從其構建SQL字符串。如果出於某種原因,HTML編碼用戶輸入以您的方式發揮作用,那麼您的應用程序中發現了一個設計缺陷。
2
我會添加到Tomalaks列表另一點。
避免在SQL代碼中使用字段值的串聯。也就是說,在某些情況下,存儲過程可能會在字符串中構建一些SQL以便隨後執行。這是沒有問題的,除非使用文本字段值作爲其構造的一部分。
命令參數可以保護旨在將值從劫持輸入執行不需要的SQL的SQL代碼,但它允許這種不需要的SQL成爲數據庫中的數據。這是第一級的可調性。如果該字段的值在存儲過程中的某個SQL字符串連接中使用,則存在二級注入緩衝區。
另一個考慮因素是這只是最小的保護。它所做的一切都是爲了使攻擊企圖無害。然而,在許多情況下,最好添加一個防止這種數據輸入altogther和/或改變管理員進行潛在注入攻擊的系統。
這是輸入驗證變得重要的地方。我不知道有任何工具可以幫助你,但是一些簡單的正則表達式可能會有所幫助。例如,「< \ w +」會檢測到在該字段中包含HTML標記的嘗試。
相關問題
- 1. 如何防止SQL注入?
- 2. 如何防止Wordpress中的SQL注入?
- 3. 防止JavaScript注入
- 4. 防止SQL注入
- 5. 防止HTML注入
- 6. 防止LDAP注入
- 7. LINQ-To-SQL如何防止SQL注入?
- 8. mysqli_real_escape_string如何防止SQL注入失敗?
- 9. 如何防止SQL注入與ColdFusion
- 10. Command.Parameters.Add()如何防止SQL注入? C#
- 11. 如何防止SQL注入,PHP
- 12. 如何防止數據注入?
- 13. SQLParameter如何防止SQL注入?
- 14. DbParameter如何防止SQL注入?
- 15. 如何防止從SQL注入網站
- 16. 防止SQL注入的PHP
- 17. 防止GET參數注入
- 18. 防止SQL注入查詢
- 19. 防止SQL注入與PHP
- 20. pdo防止sql注入
- 21. 防止SQL注入在asp.net
- 22. 防止SQL注入在ZF
- 23. Textarea防止mysql注入 - PHP
- 24. 防止MDX注入攻擊
- 25. SQL防止SQL注入
- 26. TryParse防止SQL注入嗎?
- 27. 如何防止nodejs中的sql注入和sequelize?
- 28. 如何防止核心數據中的「SQL注入」?
- 29. 如何投射bigint,以防止在PHP中的SQL注入?
- 30. 如何防止在bash腳本中的代碼/選項注入
如果您的表單接受了將通過網絡以外的其他媒介發佈的內容 - 例如雜誌,該怎麼辦?那麼你不會想要HTML編碼的字符。有時候,如果你不知道它會在什麼時候結束,那麼輸入必須儘可能保持乾淨和原始。 – 2008-12-08 16:13:08