Dev*_*ers 1 sql oracle sql-injection sqlplus batch-file
显然,如果我使用 JDBC/ODBC,我可以使用绑定变量和预准备语句来防止 SQL 注入。但是,当数据传递到最终调用 Oracle SQLPlus 的批处理过程时,是否有办法防止 SQL 注入?例如:
查询.sql:
select '&1' from dual;
exit;
Run Code Online (Sandbox Code Playgroud)
如果我这样从 SQLPlus 调用这个脚本:
$ sqlplus SCOTT/TIGER @query.sql "x','y"
Run Code Online (Sandbox Code Playgroud)
我将得到以下输出:
old 1: select '&1' from dual
new 1: select 'x','y' from dual
' '
- -
x y
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,SQLPlus 命令行参数使用简单的宏替换。我缺少替代方法吗?否则,我如何防止它被利用?
| 归档时间: |
|
| 查看次数: |
3655 次 |
| 最近记录: |