2004 10 26 使用者輸入的安全問題

2022-03-01 22:18:18 字數 747 閱讀 7653

最近在看一本叫《asp.net安全性高階程式設計》,把一些感興趣的東西寫成筆記當到這裡吧,今天這一篇主要是講怎麼防禦注入攻擊的。

script injection

1.驗證內容

a.使用regularexpressionvalidator的正規表示式來限制使用者輸入

2.篩選使用者輸入

a.使用string.replace方法

這個方法在petshop3.0中就有使用,就是把一些危險的符號(比如<>等)替換成安全的。

3.編碼輸入內容

a.使用server.encode來編碼有害字元,防止這些標記在客戶端執行

sql injection

a.使用string.length來限制使用者的輸入長度

b.使用ado.net的command物件的引數集合

隱藏窗體字段

a.始終使用sessioin檢查使用者是否有乙個有效的會話

b.不在hidden中儲存任何敏感資訊

c.想辦法處理hidden中的字段被刪除的情況

d.在客戶端檢查引數的長度和資料型別

e.在伺服器端重新進行驗證

url篡改

a.url變體

為防止url篡改,編碼url是比較明智的做法。我們可以建立乙個簡單的編碼方法,然後利用它來讀取url中的值,建立乙個編碼的字串並回傳這個編碼的url字串,接收的時候在對其解碼,然後使用。

防止資訊洩露

a.控制錯誤資訊。做好異常處理

b.禁用除錯和跟蹤

PHP安全程式設計之過濾使用者輸入

過濾是web應用安全的基礎。它是你驗證資料合法性的過程。通過在輸入時確認對所有的資料進行過濾,你可以避免被汙染 未過濾 資料在你的程式中被誤信及誤用。大多數流行的php應用的漏洞最終都是因為沒有對輸入進行恰當過濾造成的。我所指的過濾輸入是指三個不同的步驟 把識別輸入作為第一步是因為如果你不知道它是什...

python請求使用者輸入 使用者輸入

使用者輸入 大多數程式都旨在解決終端使用者的問題,為此通常需要從使用者那裡獲取一些資訊。例如,假設有人要判斷自己是否到了投票的年齡,要編寫回答這個問題的程式,就需要知道使用者的年齡,這樣才能給出 答案。因此,這種程式需要讓使用者輸入其年齡,再將其與投票年齡進行比較,以判斷使用者是否到了投票的年齡,再...

使用者輸入不期望的輸入

大多數程式都有乙個使用者介面的某種需要處理使用者輸入。在專案中,你一直在寫,你一直在使用std cin要求使用者輸入文字輸入。由於文字輸入是如此的自由形式 使用者可以輸入任何東西 所以很容易為使用者輸入不期望的輸入。當你寫程式時,你應該總是考慮使用者如何 無意或其他方式 誤用你的程式。乙個寫得很好的...