sql注入其實就是在這些不安全控制元件內輸入sql或其他資料庫的一些語句,從而達到欺騙伺服器執行惡意到嗎影響到資料庫的資料。防止sql注入,可以在接受不安全空間的內容時過濾掉接受字串內的“"”,那麼他不再是一條sql語句,而是一個類似sql語句的zifuc,執行後也不會對資料庫有破壞。如:下面這一段是找的username = request("username") //獲取使用者名稱 這裡是透過URL傳值獲取的password = request("password") //獲取密碼 也是透過URL傳值獲取的sql="select * from userlist where username = "" & username & "" and password = "" & password & """--------如果某個人知道某個使用者名稱是admin,常常有人網站的管理員使用者名稱就是admin,這是密碼可以選用"or 1 or ",那麼sql="select * from userlist where username = "admin" and password = "" or 1 or """,顯然1是恆真的,那麼驗證密碼就通過了。補充:防止的方式比較多,比如可以限制username,password中出現"""這些字元,一般網站都是隻允許數字,字元,下劃線的組合,這可以透過javascript驗證。也可以採取用儲存過程代替sql拼接,等等。
sql注入其實就是在這些不安全控制元件內輸入sql或其他資料庫的一些語句,從而達到欺騙伺服器執行惡意到嗎影響到資料庫的資料。防止sql注入,可以在接受不安全空間的內容時過濾掉接受字串內的“"”,那麼他不再是一條sql語句,而是一個類似sql語句的zifuc,執行後也不會對資料庫有破壞。如:下面這一段是找的username = request("username") //獲取使用者名稱 這裡是透過URL傳值獲取的password = request("password") //獲取密碼 也是透過URL傳值獲取的sql="select * from userlist where username = "" & username & "" and password = "" & password & """--------如果某個人知道某個使用者名稱是admin,常常有人網站的管理員使用者名稱就是admin,這是密碼可以選用"or 1 or ",那麼sql="select * from userlist where username = "admin" and password = "" or 1 or """,顯然1是恆真的,那麼驗證密碼就通過了。補充:防止的方式比較多,比如可以限制username,password中出現"""這些字元,一般網站都是隻允許數字,字元,下劃線的組合,這可以透過javascript驗證。也可以採取用儲存過程代替sql拼接,等等。