簡體   English   中英

SQL注入-從表中的*中選擇列

[英]SQL Injection - select * from table where column in (

我有一個與此類似的聲明,可以在其中插入“名稱”

select * from table where column in (/**name*/ 'name')

我目前正在檢查')'

恩。 他們可以輸入'*/; drop table--' '*/; drop table--' ,但是sql將拋出錯誤,因為沒有括號對嗎?

如果他們不能關閉括號,是否仍然存在安全風險?

為什么要冒險呢? 始終對動態值使用SQL查詢參數,這樣就不必擔心轉義或是否有風險。

如果您指定使用的編程語言和RDBMS品牌,我將為您提供參考資源,並提供使用查詢參數的示例。

是的-如果他們終止該語句(盡管無效),然后執行自己的語句怎么辦?

這有效(在mysql上本地測試):

select * from TABLE where (col = ''; select * from TABLE;

第一條語句生成錯誤,但是第二條語句運行正常。

是。

如果我按字面意思看您的帖子,您想在兩個位置插入名稱,一次在注釋中,一次在文本字符串中:

select * from table where column in (/**/select column from table where column !=/**/ '/select column from table where column !=/*');

始終轉義任何用戶輸入的數據。

mysqli_real_escape_string

還是老派

mysql_real_escape_string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM