SQL注入解決思路(C#示例)
來源:程序員人生 發(fā)布時間:2015-01-30 08:45:12 閱讀次數(shù):3571次
最近在編程中遇到1個SQL注入防護的問題。在這里順便把SQL注入小結1下。以MYSQL(5.1)為例。
1、常規(guī)的SQL語句
視察SQL語句
SELECT * FROM [tableName] WHERE col1='value1'
這個語句由3個部份組成,SELECT子句挑選得到結果,F(xiàn)ROM子句指定了挑選的范圍,WHERE子句指定了條件。當在其中進行以下置換:
SELECT * FROM [tableName] WHERE 1
以后,選出了[tableName]表中的全部內容。分析其語法不難發(fā)現(xiàn),WHERE將其后的真值表達式求值,然后作為挑選的條件。
2、WHERE子句的理解
現(xiàn)在(在MYSQL5.1)中測試以下語句
SELECT * FROM [tableName] WHERE false or 1=‘1’ and '1'='1' and "1"="1"
一樣得到了[tableName]表種的全部內容。
這個測試說明了兩點:
1、WHERE對后面的表達式進行真值計算
2、不帶符號、'與"都可以通過真值測試,可能不是個別特殊符號的問題
3、WHERE子句在編程中的使用
通常是采取字符串拼接的方式
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈