针对进入 Oracle 数据库的输入进行 SQL 注入清理
你好,我已经使用 PHP 和 MySQL 工作了一段时间了。现在我在 PHP-Informix 和 PHP-Oracle 环境中工作。我一直使用 mysql_real_escape_string 将数据输入数据库。我目前正在 Informix 和 Oracle 数据库服务器上工作,并且不知道通过 OCI8 或 odbc 等驱动程序连接的数据库有任何转义函数。
有人可以解释一下这些数据库的安全措施吗?
Hello I have been working for a while with PHP and MySQL. Now I am working in a PHP-Informix and PHP-Oracle environment. I have always used mysql_real_escape_string for the data going into the database. I am presently working on Informix and Oracle database servers, and am unaware of any escape functions for databases which are to be connected through drivers such as OCI8 or odbc.
Could anybody explain a little about the security measures for these databases.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,Oracle 有绑定变量,可以自动防止 SQL 注入。整洁吧? :)
Adam Hawkes 使用 PDO 库。我个人将 oci8 与 oci_bind_by_name 函数一起使用。
Yes, Oracle has bind variables that automatically take care of preventing sql injection. Neat, huh? :)
Adam Hawkes uses the PDO library. I personally use oci8 with the oci_bind_by_name function.
除非您正在执行非常动态的查询,否则不要进行清理。参数化查询是正确的方法。
这里的 PHP 文档 描述了如何执行此操作。
Don't do sanitization unless you are doing VERY dynamic queries. Parameterized queries are the right way to go.
Here's the PHP Documentation which describes how to do this.