【发布时间】:2012-05-27 06:33:56
【问题描述】:
您好,我正在开发一个网站并进行一些渗透测试。它是用 CakePHP 构建的,这让我意识到:
如果你使用 CakePHP 已经保护你免受 SQL 注入 CakePHP 的 ORM 方法(例如 find() 和 save())和适当的数组 表示法(即。array('field' => $value))而不是原始 SQL。
但是我不确定要在我的输入表单字段中输入哪些数据以测试 SQL 注入预防。
我有以下带有简单 VARCHAR 属性的表名 -
categories: name
clients: address, county, country, name
items: name
statuses: name
将这个 SQL 语句输入到表单并提交是测试 SQL 注入尝试的正确方法吗?
DROP TABLE "categories";
在表单上提交后,进入数据库的值为:
DROP TABLE "categories";
我是否可以假设这意味着该网站已被保护免受 SQL 注入尝试,因为它没有删除我数据库中的类别表?
【问题讨论】:
-
您是否遵循指南并专门使用 ORM 方法?如果是这样,那么请查看其他问题,例如保护对应用程序和数据库的访问、正确转义输出、会话劫持、使用 SSL 保护敏感页面以及缓解暴力密码攻击。
-
这本书稍微面向 SQL Server,但对于它所呈现的概念和想法来说,这始终是一本不错的读物:sommarskog.se/dynamic_sql.html#SQL_injection
标签: mysql sql database security cakephp