xss攻击、越权、跨站请求伪造、信息泄密等代码安全问题简单汇总

1、路径遍历

奇安信安全漏洞扫描扫出来的结果,个人感觉不是很智能。
接收文件的接口,不允许调用创建文件或删除文件的方法。
接收文件时可以用MultipartFile接收,然后不再创建临时文件,尽量使用I/O流进行处理。

2、xss攻击

对传入的参数进行xss过滤,对特殊字符进行转义处理。

3、sql注入

输入具有风险的查询条件。${} 和 #{}的主要区别是#{}会在参数前后加入"",如参数是 keyword,拼接成sql语句是 "keyword",而${}会原封不动地把原来的字段拼接到sql语句上。

4、访问权限修饰符控制

敏感的访问权限修饰符,不能直接用true、false等关键字直接开启或关闭,以防被人恶意扫描到,应该用一些具有访问权限的类间接控制。

5、使用DNS名称作为安全性的依据

不能使用DNS名称进行安全验证,一个IP地址可以对应多个DNS名称,甚至可以伪造DNS名称,通过DNS名称判断访问来源不准确。


6、不安全的框架绑定

对传入接口的参数应该进行过滤,比如下面的代码,创建一个新用户,如果多传一个admin=true,就变成创建一个管理员了。
应该对传进来参数使用VO进行封装,避免多传参数额外的参数。
同理,响应给前端的字段也应该使用DTO封装,避免爆暴露所有字段名称。
反面例子:用户登录成功后将用户所有信息、字段响应回去。


7、密码管理:不安全的随机数

Random 类并不是一个线程安全的类,在并发量大的时候有可能会产生死循环。后来jdk修复了这个bug,推出了线程安全的SecureRandom类,创建随机数应该使用安全的 SecureRandom 类。


8、密码管理:硬编码密码

对密码不能直接在代码中赋值,应该从配置文件中获取经过加密的密码值。并且尽量不使用password等信息敏感字作为字段名。


9、修改密码时,根据传进来的id修改对应用的id

当前用户的id不能直接暴露出去,应该通过后端从session或者redis中获取。对当前用户的操作都不能通过传进来的id进行处理。
····

@SysLog(name = "更改密码")
@PostMapping("/changePass")
@ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "用户id", required = true),
        @ApiImplicitParam(name = "newPass", value = "新密码", required = true),
        @ApiImplicitParam(name = "oldPass", value = "旧密码", required = true)
})
@ResponseBody
public MResponse changePass(@RequestParam("id") String id,
                            @RequestParam("oldPass") String oldPass,
                            @RequestParam("newPass") String newPass) {

····

10、登录时,发短信验证码接口和校验密码接口分开成两个,致使可以绕过手机号码

先访问验证密码接口,验证成功后返回用户手机号码,再携带获取的手机号码访问发送短信有验证码的接口。用户可以在验证密码成功后,另外发送一个手机号码访问发短信验证码的接口,从而绕过给账号用户本人发送短信这个步骤。
应该在一个接口里校验密码成功后立马发送短信。


11、登录时,验证短信验证码和执行登录接口分开成两个,致使可以绕过验证短信验证码

同上面,先访问验证短信验证码的接口,访问通过后,再访问执行登录的接口。用户可以绕过短信验证码验证,直接访问执行登录的接口。
应该在同一个接口里面完成两个步骤,验证短信后立马执行登录。


12、敏感信息暴露,信息泄密

  • 用户登录成功后,将所有用户信息返回给前端,前端将所有用户信息保存在cookie中。
  • 查询用户列表,将用户所有信息全部查询响应回去。


13、横向越权漏洞

横向越权:攻击者尝试访问与他拥有相同权限的其他用户的资源。
原因:查询、编辑、删除等操作的时候是需要传递响应数据id的,传入不是当前用户管理的id,造成横向越权。
对策:对目标数据进行判断,判断是否为当前用户有权限操作的数据。


14、纵向越权漏洞

纵向越权:攻击者尝试访问不属于他自己权限的资源
原因:隐藏菜单,按钮,从而限制用户访问某些接口的权限,但是用户可以不使用菜单、按钮,而直接在地址栏访问接口,造成纵向越权。
对策:给每个接口,每个用户建立数据访问权限,用户须拥有访问该接口权限,才允许访问。

15、跨站请求伪造

攻击者伪造一条删除数据的链接,引诱正常使用的管理员点击。管理员点击之后直接访问删除数据的链接,造成数据丢失。
对策:判断链接是否是从我们的静态页面来访问过来,如果不是,则拦截。
referer的作用:告诉服务器这次请求是从哪个页面链接过来的,如果是浏览器直接访问,则为空。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335