我希望有人可以在关闭之前提供建议或提示,因为我被警告说这是一个主观问题。
我有自己的PHP + SQL框架,由Slim和Eloquent制作,并计划在其中集成一个论坛,并使其更加用户友好,我计划在论坛发帖中添加自由文本编辑器。
显然,这些发短信通过POST发送HTML代码,并且我计划将它们保存在MySQL数据库中。由于它的雄辩,我完全理解它已经处理了准备好的声明,以避免注入。但是我不确定这是否足够安全,我正在浏览phpBB并且他们没有任何漂亮的文本编辑器直到今天(或者还没有开发3.2)并且我浏览他们关注安全性,我更加紧张,因为他们是那里的老将。
您可以通过这些简单的HTML代码注入吗?可以对我的系统使用哪些其他攻击?
谢谢!
答案 0 :(得分:1)
只要你escape插入SQL查询之前的所有内容,数据库将是最安全的...从最简单的SQL注入形式。
为了防止JavaScript注入,您必须通过删除<script>
标记在插入数据库之前清除服务器端的标记。您可能还想删除iframe
,link
和表单标记。
您还必须在客户端配置内容过滤。例如,TinyMCE有invalid_elements
option,您可以在其中列出要删除的标记。
系统支持的功能越多,风险就越明显。例如,黑客可以上传具有包含shell表达式(例如$(rm -rf /www/).png
)的名称的文件。因此,如果服务器上的某个人意外地在这种文件名上运行eval
,服务器将被黑客入侵。另一个例子是上传一个看起来像和图像的脚本。
我想,列出更多可能的方法来破解系统是没有意义的。您的问题的答案是:是的,系统可以通过使用流行的Web编辑器进行攻击。因此,我建议尽量减少向用户公开的功能数量,并彻底清理用户输入,尤其是在服务器端。