反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-防衛SQL隱碼攻擊-顯式格式化模型
如果使用日期或數值連線到SQL或PL/SQL的文字中,並且不能使用繫結變數來傳遞它們,
則可以使用顯式的格式化模型來把它們轉換成文字,這是獨立於執行的會話的NLS引數設定的。
可以確保轉換後的值具有日期或數字的字面量的格式。
建議使用顯式的獨立於本地的格式化模型來構造SQL語句,不僅僅是出於安全的考慮,
也可以確保動態SQL語句可以在任何全域性環境中正常執行。
--11g12_07_14.prc,針對11g12_07_11.prc的解決方法 CREATE OR REPLACE PROCEDURE get_recent_record ( user_name IN VARCHAR2, service_type IN VARCHAR2, rec OUT VARCHAR2) IS query VARCHAR2(4000); BEGIN
query := 'SELECT value FROM secret_records WHERE user_name=''' || user_name || ''' AND service_type=''' || service_type || ''' AND date_created> DATE ''' || TO_CHAR(SYSDATE - 30,'YYYY-MM-DD') || '''';
DBMS_OUTPUT.PUT_LINE('查詢: ' || query); EXECUTE IMMEDIATE query INTO rec; DBMS_OUTPUT.PUT_LINE('結果: ' || rec); END;
-- 11g12_07_14.tst -- 執行之前先設定會話變數 -- ALTER SESSION SET NLS_DATE_FORMAT='"'' OR service_type=''Merger"'; DECLARE record_value VARCHAR2(4000); BEGIN get_recent_record('Anybody', 'Anything', record_value); END;
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1082077/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-防衛SQL隱碼攻擊-驗證檢查SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-防衛SQL隱碼攻擊-繫結變數SQL變數
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-SQL隱碼攻擊技術-語句注入SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-SQL隱碼攻擊技術-語句修改SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-SQL隱碼攻擊技術-資料型別轉換SQL資料型別
- SQL隱碼攻擊原理是什麼?如何防範SQL隱碼攻擊?SQL
- SQL隱碼攻擊SQL
- 預防SQL隱碼攻擊SQL
- 【SQL Server】--SQL隱碼攻擊SQLServer
- MYSQL SQL隱碼攻擊MySql
- 【SQL隱碼攻擊原理】SQL
- 防止SQL隱碼攻擊SQL
- SQL隱碼攻擊(一)SQL
- SQL隱碼攻擊式攻擊掃描器SQL
- NET防SQL隱碼攻擊方法SQL
- WEB三大攻擊之—SQL隱碼攻擊與防護WebSQL
- PLSQL Language Referenc-PL/SQL動態SQL-SQL隱碼攻擊-SQL隱碼攻擊技術-語句修改SQL
- 預防SQL隱碼攻擊筆記SQL筆記
- SQL隱碼攻擊語句SQL
- pikachu-SQL隱碼攻擊SQL
- SQL隱碼攻擊導圖SQL
- SQL隱碼攻擊問題SQL
- SQL隱碼攻擊的例子SQL
- ZMLCMS-SQL隱碼攻擊SQL
- SQL隱碼攻擊演練SQL
- DVWA-SQL Injection(SQL隱碼攻擊)SQL
- 六個建議防止SQL隱碼攻擊式攻擊SQL
- 【網路安全】什麼是SQL隱碼攻擊漏洞?SQL隱碼攻擊的特點!SQL
- 攻擊JavaWeb應用[3]-SQL隱碼攻擊[1]JavaWebSQL
- 攻擊JavaWeb應用[4]-SQL隱碼攻擊[2]JavaWebSQL
- WAF攻防之SQL隱碼攻擊篇SQL
- SQL隱碼攻擊關聯分析SQL
- SQL隱碼攻擊-堆疊注入SQL
- XSS與SQL隱碼攻擊SQL
- SQL隱碼攻擊基礎原理SQL
- Mybatis如何防止SQL隱碼攻擊MyBatisSQL
- MSSQL SQL隱碼攻擊 總結SQL