2010-12-08 97 views
0

當我插入搜索框,然後按搜索按鈕單引號提示錯誤,如:單引號錯誤

[微軟] [SQL Server本機客戶端 10.0]的字符後[SQL服務器]閉合的引號字符串''。

+3

參數化你的SQL!這肯定表明您的應用程序易受SQL注入攻擊。你在用什麼? C#? – 2010-12-08 12:16:46

+3

嘗試搜索:`'; drop table users;'' – 2010-12-08 13:51:28

回答

2

您應該使用parameterized queries而不是通過串聯構造您的SQL。

這將避免SQL Injection attacks以及解決任何單引號問題。

快速修復它通過加倍('')以避免',但這只是一個臨時解決方法,您的代碼仍然存在漏洞。

0

參數化您的SQL查詢。還有更多嚴重的問題比這叫SQL Injection

0

您需要轉義單引號,如\',因爲您使用單引號括住where語句,就像where i ='foo',那麼您需要編寫where'='\''來匹配單引號或謊言在哪裏我=今天是個好日子'