1.防范重复提交
用户的重复提交误操作会导致系统接受重复交易,主机系统多次扣账等严重 后果。为此,平台对重复提交做了双重防范。 客户端防范。通过 Javascript 防范重复交易。用户点击按钮后,将按钮变灰不让用户多次点击。通过 Javascript 的 alert 提示语句,如用户多次点击提 交按钮,给出友好提示,并组织提交服务器。 服务器端防范。在进行交易前,平台产生一次性口令,并隐藏在页面中,用 户提交表单时,一次性口令随着表单数据一并提交,平台接受到请求后,判断一 次性口令是否合法,如之前已经使用过,则表示属重复提交,给出友好的错误页面提示。
2、防注 Sql 入过滤
攻击者往往利用此类注入来非法执行数据库访问,以查看权限范围外的信 息,造成信息的泄露。或者利用该注入方式修改 SQL 语句的逻辑,造成系统数据 库级的信息校验的失效。防范此类注入攻击需要在程序开发的时候对涉及数据库 JDBC 操作的时候禁止使用字符串拼接 SQL 的方式,同时强制要求采用 JAVA 的 PreparedStatement 类来对 SQL 语句进行预处理,将参数值以方法调用的方式传 递给 PreparedStatement 类,在使用 MyBatis 或 iBatis 框架时使用#号进行参数 注入,如需使用$符号注入参数,则必须对参数进行严格检查。
3、资源访问控制
系统基于过滤器对资源访问路径及资源访问权限做出严格控制,防止非法人 员通过伪造的 url 访问系统资源;对于文件上传处理大小做严格控制,以访非法 人员上传大文件暂用带宽资源;对于文件下载教研文件名,禁止出现“\”、“/”、 “.”字符。