程序部分
1.入口文件加入SQL关键字过滤(立刻要做), API的有多维数据的需要注意
2.任何密码要有等级检测, 密码位数提高到8位以上
3.纯数字的支付密码也要有安全检测, 如’123456’的密码将不能通过
4.登录/支付密码连续错误5次账号暂停24小时(后台参数可设置)
5.密码要先在本地加密(SHA1)
6.涉及API接口对接的项目全部使用AES加密(每个项目最好使用不同的密钥, 注意同一项目密钥一旦确定最好不要修改)
7.涉及金额的重要项目, 金额先用用户的ID连接再使用AES加密, 如用户的ID为1, 金额为1.00, 那组合成AesEn(‘1_1.00’), 解密后要对用户ID比对. 防止直接串改数据库. 同时可以有一项不加密的金额字段, 只是做为程序员用
8.涉及金额项目要有日志, 日志变更和余额变更做好封装
运维部分
1.服务器数据库密码使用10位以上数字字母符号混合的字符串
2.服务器尽量少开端口, 一般80, 443, 22端口即可, 另外最好把22端口修改为其它端口
3.涉及Windows服务器需要安装微软自带杀毒软件, 及打开防火墙, 同时系统安装完之后要先把所有的补丁打上之后再作其它操作, 3389端口最好也要修改一下
4.打开服务器的各种日志, 如nginx访问日志, mysql的日志等, lnmp默认是不打开的
附上代码:
//防止SQL注入代码,请将该文件中前两段代码添加到自己项目index.php的最前面即可
/*****防止SQL注入代码 begin*****/
//判断是否含有注入并跳出
function sqlInj($value) {
//过滤参数
$arr = explode('|', 'UPDATEXML|UPDATE|WHERE|EXEC|INSERT|SELECT|DELETE|COUNT|CHR|MID|MASTER|TRUNCATE|DECLARE|BIND|DROP|