网站开发经验

网站开发经验
1、绕开漏洞
1、避免短信、邮件炸弹:控制短信、邮件发送数量限制、短信、邮件发送前最好校验1分钟有效图形验证码,验证码(短信、邮件验证码)校验成功后必须失效,防止用同一个验证码多次校验。
2、表单重复提交:做好按钮控制,提交统一用验证码做校验。
3、页面需要展现什么信息,后台传什么信息,不需要的不传到页面。
4、敏感信息做加密处理,尤其用户信息、尽量避免用户id做参数传输,如必要,则用户id也需要做处理。
5、有下一步操作,在最后一步提交时,把前几步的校验信息在最后提交也要校验,避免绕过上一步校验直接进入最后一步。
6、xss防御,避免传参到后台又传到前台,如必要,则通过org.owasp.encoder.Encode处理,可以防止xss攻击。具体写法参考:https://www.owasp.org/index.php/OWASP_Java_Encoder_Project#tab=Use_the_Java_Encoder_Project。

7、必须处理好事务,如有多个事务,请在一个blh入口操作,必须避免前台判断成功与否来继续请求下一个事务。
2、编码思路
接口化:
所有方法都通过接口调用,接口调用尽可能在service里处理,减少blh层业务操作,避免事务不统一。所有业务尽可能独立,互不影响,降低业务耦合。
所有业务尽量拆分成小单元处理,避免sql查询时做计算(定时任务计算)。
配置化:
在编码过程中通常会不假思索的把一些变量,常量写死在代码、页面中。
存在问题:
1、如值发生变化,更改地方多,影响大 ,易出现问题。
2、增加代码量,不变他人维护。
3、有些情况需要通过定制编写代码生成(索引),增加一块就得加一块代码,使之增加不便,而且还需出更新包、重启服务器,增加出错风险。        
单独网站: 
                    通过配置文件、常量类等做法。
内外网: 
                   依情况而定,如有需要可以通过内网开发简单配置的维护页面,通过同步配置同步到外网使用,维护起来更加灵活便捷,减少出错率。
3、缓存的使用:
在外网尽可能减少对数据库的连接,所以会用到其他技术替代这一操作:索引、缓存等。缓存在网站上的使用会很频繁,主要使用在:
1、验证码(短信、邮件、图片验证码校验,减少计算代码)
2、频繁查询不长变更的结果集(提高查询效率)
3、短时间的权限控制(用户登录密码锁定)
4、数据安全
对敏感数据落地到库需要做加密处理,页面需要什么数据传输什么数据,避免整个对象传输。尽可能用用户id等信息做参数请求,如必须,则对用户id做处理。
推荐加密方法:国密加密
可逆加密:SMS4         
         框架集成 (str:加解密字符串;key:秘钥空则默认;code:解密字符串编码,如UTF-8)
         加密:SMS4Util.encodeSMS4(str)/ SMS4Util.encodeSMS4(str,key)
         解密:SMS4Util.decodeSMS4toString(str,code)/SMS4Util.decodeSMS4toString(str,key,code)
不可逆加密:SMS3
        框架集成 SM3Util.encodeSM3(str)
5、前台方法
可以降低开发人员对前端编码的要求
统一发送请求方法,方便对请求做控制(登录、禁言等过滤器做过滤),对请求可以统一管理。
统一分页方法及样式管理。
统一表单校验方法。

posted @ 2020-05-07 10:43  xhc0714  阅读(152)  评论(0)    收藏  举报