JAVA编码规范:安全规约、mysql数据库_java后端的sql编码规范

写校验的正则表达式存在缺陷或者不严谨时,攻击者可以构造特殊的字符串来大量消耗服务器的系统资源,造成服务器的服务中断或停止。

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_字段名;普通索引名则为 idx_字段名_

说明:pk_即primary key;uk 即 unique key;idx_即index 的简称。

6、【强制】小数类型为 decimal,禁止使用 float 和 double。

说明:在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据

拆成整数和小数并分开存储。

7、【强制】如果存储的字符串长度几乎相等,使用 char定长字符串类型
8、【强制】varchar是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张
表,用主键来对应,避免影响其它字段索引效率。
9、【强制】表必备三字段:id,create_time,update_time.

说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为1。create_time,update_time的类型均为 datetime 类型。

数据的创建时间和数据的修改时间,分别代表这条数据什么时间创建什么时间修改;id是作为数据库一定遵守设计范式第一范式就是必须有主键代表数据的唯一值。

10、【推荐】表的命名最好是遵循“业务名称_表的作用”

正例:alipay_task/force_project/trade_config

11、【推荐】库名与应用名称尽量一致。
12、【推荐】如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释。
13、【推荐】字段允许适当几余,以提尚直间能,但必须考虑数据一致。

冗余字段应遵循

1)不是频繁修改的字段。

2)不是 varchar 超长字段,更不能是 text 字段。

3)不是唯一索引的字段。

正例:商品类目名称使用频率高,字段长度短,名称基本一不变,可在相关联的表中冗余存储类目名称,避免关联查询。

14、【推荐】单表行数超过 500万行或者单表容量超过 2GB,才推荐进行分库分表说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建
表时就分库分表。
15、【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

正例:如下表,其中无符号值可以避免误存负数,且扩大了表示范围。

(二)索引规约

1、【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引

说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外即使在应用层做了非常完善的校验控制,只要没有唯一索引,根

据墨菲定律,必然有脏数据产生。

2、【强制】超过三个表禁止join。需要join 的字段,数据类型必须绝对一致;多表关联查询时,保证被关联的字段需要有索引。

说明:即使双表join 也要注意表索引、SOL性能。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-XrO4uZgE-1712499100791)]

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java代码版本管理规范是为了确保团队成员在使用Git等版本控制工具时能够统一标准化的管理和维护Java代码,以提高团队的协作效率和代码质量。 1. 项目目录结构:规定项目的目录结构,例如将源代码(src)、测试代码(test)、配置文件(config)等分别放在不同的目录下,便于管理和维护。 2. 命名规范:统一制定命名规范,包括类、方法、变量、常量等的命名方式,例如采用驼峰式命名法,提高代码的可读性和维护性。 3. 文件编码规范:统一使用UTF-8编码格式,避免因为编码格式导致的代码乱码问题。 4. 注释规范:规定代码中必需的注释内容,包括类、方法、变量的功能描述、参数说明、返回值说明等,方便他人理解和使用代码。 5. 版本控制规范:规定代码提交、分支管理、合并策略、代码回滚等版本控制操作的规范,确保代码提交的可追溯性和安全性。 6. 异常处理规范:明确规定异常处理的方式和原则,例如在方法声明时指明可能抛出的异常类型,在合适的位置捕获和处理异常。 7. 代码格式规范:统一规定代码的缩进、换行、空格等代码格式,提高代码的可读性。 8. 公共代码规约:规定公共代码的编写规范,例如公共方法的参数校验、返回值判断等,确保公共代码的正确性和可靠性。 通过遵守Java代码版本管理规范,团队成员可以更好地协同工作,减少代码冲突和错误,提高代码质量和项目的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值