【发布时间】:2012-11-12 22:25:29
【问题描述】:
我正在完成我的第一个“真正的”PHP 应用程序,我正在努力确保它是安全的。我有点担心,因为我不是“专家” PHP 程序员,所以我可能会遗漏一些重要的东西,所以我想给你一些关于我的应用程序的信息,希望你能告诉我这是否是案子。所以我们开始:
- 我正在使用 CMS 来处理用户身份验证,所以我不必 担心那个。
- 在开始工作后不久发现 PDO 在我的应用程序中,我将所有代码移植到使用准备好的 带有 PDO 的语句。
- 我正在转义使用
htmlentities()输出的所有表单和数据库数据(即使是我认为 安全的数据)。 - 我的应用程序确实使用了会话变量和 cookie 变量,但两者的功能都很不重要。
- 我设计了我的表单处理功能,无论表单是否以某种方式被更改或从服务器外提交(即我总是检查提交的数据以确保其有效)都无关紧要。
- 我已尽最大努力使所有错误消息和异常消息保持礼貌但非常晦涩。
- 我正在强制通过 https 提供包含敏感信息的页面(例如登录页面)。
当我第一次开始编写我的应用程序时,我不知道准备好的语句,这是一个很大的问题。我还有什么遗漏吗?
【问题讨论】:
-
一些与 HTTPS 相关的事情 1) 使用真实证书,而不是自签名。有免费的 2) 对所有内容使用 HTTPS 并设置严格传输安全标志。仅对敏感内容使用 https 是行不通的。 3) 将 cookie 标记为“安全”
-
@Nate - 至少您考虑到安全性并且正在覆盖基地。
标签: php mysql security xss sql-injection