Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-我的CMS安全_Php_Security - Fatal编程技术网

PHP-我的CMS安全

PHP-我的CMS安全,php,security,Php,Security,我有自己的cms,我正在探索应该实施和研究的安全选项 我的所有CMS页面都基于会话中存储的用户ID检查用户权限。我在想,对我来说,“保护”这些页面中的表单有多重要?我的意思是,用户有机会编写SQL语句,所以如果他们想使用SQL注入,其实并不难 所以我的想法是只保护登录页面,防止会话劫持,这是正确的还是我遗漏了什么 首页上的表单、查询字符串等也都是安全的 谢谢你对这件事的了解 保护web应用是一项永无止境的任务。人们通过工具和方法的结合,每天都能找到可以利用的载体。在构建CMS时,您必须特别小心:

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

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

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

首页上的表单、查询字符串等也都是安全的


谢谢你对这件事的了解

保护web应用是一项永无止境的任务。人们通过工具和方法的结合,每天都能找到可以利用的载体。在构建CMS时,您必须特别小心:

  • 用户能够以非用户身份登录
  • 用户能够远程将永久性地注入页面(尤其是与上述内容结合使用时)
  • 用户能够修改或提取他们不应该访问的数据库内容
所有这些都与表单提交有关,或者更一般地说,与用户数据输入有关。它归结为一个简单的规则:永远不要相信用户

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

第二顺序更难。它包括在数据库中存储一些东西,然后在另一条语句中执行。导游很清楚事情是怎么发生的

这就是SQL打败绝大多数脚本小子的全部原因

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

阿尔索
不要犯我老板犯的错误。立即检查会话,而不仅仅是在控制器运行后呈现页面之前。

根据表单定义“安全”。我会写一个一般性的答案,当你的详细信息进来时,我会添加细节。谢谢你的快速输入。我还没有实现它,但在登录页面安全方面,我考虑转义html字符、引号和参数化SQL语句。我对会话劫持不太了解,所以我需要了解这一点。我只是希望,如果我有登录页面安全+防止劫持的保护,就不可能有人能够访问我的cms页面-每个人都在检查权限。非常感谢提供的信息。我已经阅读了purify文档,我正在考虑使用它,但我决定不使用它,因为以下原因->用户(我们更可能说是编辑器,因为只有编辑器有机会这么做)可以在CMS桌面上编写html代码(比如页面布局)。我的想法是编辑/管理员可以做任何事情,他甚至可以在点击几下就删除网站。如果编辑器对站点拥有完全控制权,那么使用html purify的原因是什么?