牛骨文教育服务平台(让学习变的简单)

输入和输出

检查是否做了HTML代码的过滤
可能出现的问题:如果有人输入恶意的HTML代码,会导致窃取cookie, 产生恶意登录表单,和破坏网站。

检查变量做数据库操作之前是否做了escape
可能出现的问题:如果一个要写入查询语句的字符串变量包含了某些特殊的字符,比如引号(",")或者分号(;) 可能造成执行了预期之外的操作。
建议采用的方法:使用mysql_escape_string()或实现类似功能的函数。

检查输入数值的合法性
可能出现的问题:异常的数值会造成问题。如果对输入的数值不做检查会造成不合法的或者错误的数据存入UDB、存入其它的数据库或者导致意料之外的程序操作发生。
举例:如果程序以用户输入的参数值做为文件名,进行文件操作,恶意输入系统文件名会造成系统损毁。

核实对cookie的使用以及对用户数据的处理
可能出现的问题:不正确的cookie使用可能造成用户数据泄漏。

先申明后使用

XXX环境下的 PHP 代码编写要求所有的变量均需要先申明后使用,否则会有错误信息,对于数组,在使用一个不确定的 key 时,比如先进行 isset() 的判断,然后再使用;比如下面的代码:

$array = array();
$var = isset( $array[3] ) ? $array[3] : "";

严格的过滤和合法性验证

在XXX环境下,对 web 通过 GET 或者 POST 方法传递来的参数均要求进行严格的过滤和合法性验证,不推荐使用直接的 $_GET 、 $_POST 或者 $_REQUEST 获取,而通过 XXX 的 XXX_yiv 模块提供的方法获取和过滤处理,(类似ThinkPHP的I函数)。


访问控制

对内部使用的产品或者供合作方使用的产品,要考虑增加访问控制。

logs

确保用户的保密信息没有记在log中(例如:用户的密码);
确保对关键的用户操作保存了完整的用户访问记录。

https

对敏感数据的传输要采用https。