【发布时间】:2012-12-08 11:45:25
【问题描述】:
我将 mode_rewrite 与 codeiniter 一起使用以获取诸如:
/controller/param1/param2
大多数情况下,param1 和 param2 将是数据库中的 ID(即数字),仅此而已。
问题是,我可以做些什么以及应该做些什么来保护它免受潜在的黑客攻击?我应该为此使用 html 净化器,还是有更好的方法,或者甚至需要做些什么?
我在安全和保护方面真的是新手,我刚刚听说过 html 净化器,我宁愿不要像初学者那样到处使用它。
我应该只是 preg_match() 吗?
如果 preg_match() 是解决方案,哪个表达式只接受数值(ID 值)?
【问题讨论】:
-
您主要担心 XSS 或 SQL 注入吗?因为两种攻击向量的答案不同。
-
两者...我认为。我的意思是 ID 稍后用于通过 db 查询访问数据,在此之前可能会滥用 xss 虎钳......我需要限制它,使其只接受数字内容,所以我认为 preg_match() 可能帮助。
-
其实我认为codeigniter的活动记录类可以防止sql注入。
-
你可以在 routes.php 中设置它。
/controller/(:num)/(:num)之类的东西会将参数限制为仅数字输入。我认为默认情况下带有非数字字符的参数会重定向到 404。
标签: codeigniter url htmlpurifier