说明:Java 代码用正则来验证客户端的输入,有些正则写法验证普通用户输入没有问题,但是如果攻击人员使用的是特殊构造的字符串来验证,有可能导致死循环
的结果。ReDOS(Regular expression Denial of Service)正则表达式拒绝服务攻击。实际上开发人员使用了正则表达式来对用户输入的数据进行有效性校验,当编
写校验的正则表达式存在缺陷或者不严谨时,攻击者可以构造特殊的字符串来大量消耗服务器的系统资源,造成服务器的服务中断或停止。
5、【强制】禁止向 HTML页面输出未经安全过滤或未正确转义的用户数据。
系统的出口要堵住特殊字符,出口一般指的是web界面。同时也要保证系统的入口不要进入特殊字符,入口可能是web界面,也可能是开发的接口。
6、【强制】表单、AJAX 提交必须执行CSRF安全验证。
说明:CSRF(Cross-site request forgery)跨站请求伪造是一类常见编程漏洞。对于存在 CSRF 漏洞的应用/网站,攻击者可以事先构造好 URL,只要受害者用户一访
问,后台便在用户不知情的情况下对数据库中用户参数进行相应修改。
7、【强制】在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放的机制,如数量限制、疲劳度控制、验证码校验,
免被滥刷而导致资损。
说明:如注册时发送验证码到手机,如果没有限制次数和频率,那么可以利用此功能骚扰到其它用户,并造成短信平台资源浪费。
mysql数据库
(一)建表规约
1、【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是 unsignedtinyint(1表示是,0 表示否)
说明:任何字段如果为非负数,必须是 unsigned.
注意:POJ0 类中的任何布尔类型的变量,都不要加is前缀,所以,需要在设置从 is xxx到 Xxx 的映
射关系。数据库表示是与否的值,使用 tinyint 类型,坚持is xxx 的命名方式是为了明确其取值含义与取值范围。
2、【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无
法进行预发布,所以字段名称需要慎重考虑。
说明:MySQL在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。正
例:aliyun_admin ,rdc_config ,level3_name
反例:AliyunAdmin ,rdcConfig ,level_3_name
在数据库里命名规约多个单词之间每个词之间用下划线分隔,所有的单词建议全小写但是某一些数据库有自己的特性,比如MySQL数据在windows里是大小写不敏
感的,在linux是大小写敏感的
在oracle数据库里比较特殊,如果表名字段名用双引号引起来一定是大小写敏感的,不加双引号是大小写不敏感的。所以小写和下划线分隔这样更好一点“aliyun_admin”
3、【强制】表名不使用复数名词。
说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数形式,符合表达习惯。
因为表作为数据载体,里面复数是多条记录,而每一条记录代表一条完整数据。不建议表名复数。
4、【强制】禁用保留字,如 desc、range、match、delayed等,请参考 MySQL 官方保留字。
5、(强制】主键索引名为 pk_字段名;唯一索引名为 uk_字段
版权归原作者 uftdv17136 所有, 如有侵权,请联系我们删除。