安全编码规范.docx
《安全编码规范.docx》由会员分享,可在线阅读,更多相关《安全编码规范.docx(23页珍藏版)》请在冰豆网上搜索。
![安全编码规范.docx](https://file1.bdocx.com/fileroot1/2023-2/8/c56159fa-b9a8-4a64-9691-c80b1239d8ca/c56159fa-b9a8-4a64-9691-c80b1239d8ca1.gif)
安全编码规范
安全编码规范
版本号:
V1.0
修订页
编号
章节
名称
修订内容简述
修订
日期
修订前
版本号
修订后
版本号
修订人
批准人
1安全编码规范
1.1输入验证和数据合法性校验
程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题。
1.1.1避免SQL注入
使用PreparedStatement预编译SQL,解决SQL注入问题,传递给PreparedStatement对象的参数可以被强制进行类型转换,确保在插入或查询数据时与底层的数据库格式匹配。
StringsqlString="select*fromdb_userwhereusername=?
andpassword=?
";
PreparedStatementstmt=connection.prepareStatement(sqlString);
stmt.setString(1,username);
stmt.setString(2,pwd);
ResultSetrs=stmt.executeQuery();
1.1.2避免XML注入
通过StringBulider或StringBuffer拼接XML文件时,需对输入数据进行合法性校验。
对数量quantity进行合法性校验,控制只能传入0-9的数字:
if(!
Pattern.matches("[0-9]+",quantity)){
//Formatviolation
}
StringxmlString="- \nWidget\n"+
"500\n"+
""+quantity+"";
outStream.write(xmlString.getBytes());
outStream.flush();
1.1.3避免跨站点脚本(XSS)
对产生跨站的参数进行严格过滤,禁止传入