[英]Injection safe “SELECT FROM table WHERE column IN list;” using python3 and sqlite3
[英]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.