爲了防止SQL注入我的網站,我使用了準備好的語句。SQL注入無需用戶直接輸入
現在比方說,我在我的代碼的地方使用,一個簡單的SQL查詢是這樣的:
SELECT DATA FROM DATABLE;
這段代碼容易注入?那麼在我看來,這是不可能的,因爲沒有用戶的輸入。但我只是想確定。
爲了防止SQL注入我的網站,我使用了準備好的語句。SQL注入無需用戶直接輸入
現在比方說,我在我的代碼的地方使用,一個簡單的SQL查詢是這樣的:
SELECT DATA FROM DATABLE;
這段代碼容易注入?那麼在我看來,這是不可能的,因爲沒有用戶的輸入。但我只是想確定。
如果您的聲明是固定的(沒有外部參數),那麼它不受注射影響。
所以,如果你的代碼看起來是這樣的:
result = RunQuery("SELECT * FROM Table")
那麼你是安全的,因爲查詢將始終相同每次並且不能被用戶所影響。
注入只有在您的查詢中使用變量時纔有可能。
如果使用帶參數的預準備語句不可能。
select * from user where id = ?
你不能改變這個查詢,僅值,在這種情況下,你只會得到任何結果
如果使用
select * from user where id = '$id'
現在依賴於$ ID,我們可以價值有一個SQL注入。 如果$ id將爲「0」或id> 0「,您將全程登錄;)
呃,沒有用戶可以修改該文字語句。 –
我會說1)它不容易注入,因爲沒有參數注入和2)我不認爲這個查詢將無論如何工作 – Andrew
@AlexK。感謝您的回覆! Andrew:當然這個查詢會起作用!!如果你已經在你的數據庫中存儲了一些數據,並想從它那裏檢索所有的數據! –