-1

我有自己的 cms,我正在探索应该实施和研究的安全选项。

我所有的 CMS 页面都根据存储在 Session 中的 UserID 检查用户权限。我在想,“保护”这些页面中的表格对我来说有多重要?我的意思是用户有机会编写 SQL 语句,所以如果他们想使用 SQL 注入,其实并不难……

所以我的想法是只保护登录页面+防止会话劫持,这是正确的还是我错过了什么?

首页上的表格、查询字符串等也受到保护。

感谢您对此的任何了解。

4

1 回答 1

0

保护 Web 应用程序是一项永无止境的任务。人们通过工具和方法的组合,每天都在寻找可以利用的载体(从字面上看)。在构建 CMS 时,您必须特别小心:

  • 用户能够以非身份登录
  • 用户能够远程永久注入页面(尤其是与上述结合时)
  • 用户能够修改或提取他们不应该访问的数据库内容

所有这些都与表单提交有关,或者更一般地说,与用户数据输入有关。它归结为一个简单的原则:永远不要信任用户。

您必须担心的第一个,也是迄今为止最危险的,是 SQL 注入。这是很多公司每年都会遇到的问题,而且相当深入,尽管大多数攻击可以通过使用参数化查询(TRUE参数化查询。PDO 默认模拟它们,有一个配置标志来打开真正的参数化)。这将有效地为您完成大部分与 SQL 相关的清理,将“合理清理”留给您(即确保日期实际上是日期)。这可以保护您免受人们倾向于称之为一阶 SQL 注入的影响——换句话说,直接进入。

二阶难度更大。它涉及在数据库中存储一些东西,然后在另一个语句中执行。思科指南对事情的发生方式有很好的了解。

这就是 SQL 击败绝大多数脚本小子的全部内容。

在内容过滤方面,您希望使用白名单方法而不是黑名单方法。删除您不信任或无法识别的所有内容。在 HTML 方面,有一个很棒的工具叫做 HTMLPurify 可以做到这一点。

不要犯我老板犯的错误。立即检查会话,而不是在控制器运行后渲染页面之前。

于 2013-04-11T11:06:32.600 回答