thinkPHP5-安全机制
- 设置public目录为唯一对外访问目录,不能把资源文件放入到应用目录;
- 使用框架提供的请求变量获取方法(Request类的param方法及input助手函数)而不是原生系统变量获取用户输入的数据;
- 使用验证类或者验证方法对业务数据设置必要的验证规则;
- 设置安全过滤函数对用户输入的数据进行过滤处理。
htmlspecialchars()
此函数是将用户输入的所有信息原样输出。
避免用户输入的html,js等代码被浏览器解析影响服务器原来的功能,有效避免黑客攻击。
strip_tags()
函数默认删除字符串中所有html标签,也可以指定删除部分html标签。
<?php
$str = "<font color="red" size=7>Linux</font> <i>Apache</i> <u>Mysql</u> <b>PHP</b>";
echo strip_tags($str); //删除了全部HTML标签,输出:Linux Apache Mysql PHP
echo strip_tags($str,"<font>"); //输出<font color="red" size=7>Linux</font>Apache Mysql PHP
echo strip_tags($str,"<b><u><i>"); //输出Linux <i>Apache</i> <u>Mysql</u> <b>PHP</b>
?>
- 尽量少使用字符串查询条件,如果不得以的情况下,使用手动参数绑定参数;
- 不要让用户输入决定要查询或者写入的字段;
- 对于敏感数据在输出的时候使用hidden方法进行隐藏;
- 对于数据的写入操作应当做好权限检查工作;
- 写入数据严格使用field方法限制写入字段;
- 对于需要输出到页面的数据做好必要的XSS过滤。
注:XSS(Cross Site Scripting)跨站脚本攻击,一种常见的web攻击手段,与SQL注入类似。黑客通过在插入恶意脚本,实现对用户浏览器的控制。
主要指对上传的文件进行安全性验证。系统的thinkfile提供了文件上传的安全支持,包括对文件后缀、文件类型、文件大小及上传图片文件的合法性检查,确保你已经在上传操作中启用了这些合法性检查。
- 对所有公共的操作方法做必要的安全检查,防止用户通过URL直接调用;
- 不要缓存需要用户认证的页面;
- 对用户的上传文件,做必要的安全检查,例如上传路径和非格式;
- 对于项目进行充分的测试,避免业务逻辑的安全隐患;
- 做好服务器安全防护。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: thinkPHP5-性能调试
- 下一篇: Lavarel入门