本人大二软件工程,求赐一个 java web 项目和一个 ssm 项目( ps:能力严重太足,希望项目有一定锻炼能力的作用),想要写写改改拿着当作项目投简历,苦于网上找到的都是电商项目,想做一些不涉及并发的,就差不多毕业论文水平的就可以
1
jay0726 2019-08-19 11:21:17 +08:00
学会使用 https://github.com/
|
2
qping 2019-08-19 11:36:25 +08:00
学 springboot 吧,简单易上手
|
3
mccreefei 2019-08-19 11:52:33 +08:00
这是我大学时期写的一个 SSM 聊天室,可以看看: https://github.com/MccreeFei/EasyChat
|
4
gaobh 2019-08-19 11:52:51 +08:00
写个进销存软件就差不多了
|
5
no1xsyzy 2019-08-19 12:21:30 +08:00 7
“能力严重太足” 我想是打错了,但还是笑喷了
|
8
wangkai0351 2019-08-19 13:20:53 +08:00
@mccreefei 不是我杠精啊,看了一眼您的项目,用户登陆管理模块有安全问题,比如
User queryUser(@Param("name") String name,@Param("password") String password); public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + ", loginDate=" + loginDate + ", logoutDate=" + logoutDate + '}'; } |
9
azcvcza 2019-08-19 16:11:49 +08:00
接 8 楼,不做过滤直接拼接,太容易被注入了,写着玩还行吧
|
10
xlui 2019-08-19 18:17:14 +08:00 via Android
|
11
wc951 2019-08-19 19:30:40 +08:00 via Android
为什么查询用户会把密码返回去,没想过安全问题吗
|
12
xaplux 2019-08-19 19:46:25 +08:00
@xlui 同意你的观点
@wangkai0351 queryUser 明显是 dao 层啊,有什么安全问题? User 的 toString 方法有什么安全问题?不要告诉我是因为密码没有加密。 @azcvcza 哪里看出容易注入了? @wc951 domain 的 toString 方法这样写没有问题的啊 |
13
wc951 2019-08-19 19:51:56 +08:00 via Android
@xaplux 敏感信息不应该写在 tostring 里,如果有日志切面调用了返回值的 tostring 方法就啥都暴露了
|
14
wangkai0351 2019-08-19 20:32:25 +08:00
@xaplux 我不甚懂 java,我认为,只要在用户输入缓冲区到数据库接口这条路上没有做防注入过滤,不都是脆弱的吗?
|
15
Allianzcortex 2019-08-19 20:38:59 +08:00 via iPhone
@wangkai0351 不....那段代码是打印用户信息,不是验证登陆。可以说有隐私问题但不是执行 sql 里直接使用用户输入,不会被注入
|
16
wangkai0351 2019-08-19 20:43:53 +08:00
@Allianzcortex 你是说“ User queryUser(@Param("name") String name,@Param("password") String password);
”是打印用户信息? |
17
Allianzcortex 2019-08-19 20:52:26 +08:00
@wangkai0351 请教下那段代码是在? User queryUser 出现在 https://github.com/MccreeFei/EasyChat/blob/25f9fd3f9f8d74572d3d750cea680b3419a679a3/src/main/java/cn/mccreefei/dao/UserDAO.java#L16, 而可能存在 SQL 诸如风险的代码则是在 https://github.com/MccreeFei/EasyChat/blob/25f9fd3f9f8d74572d3d750cea680b3419a679a3/src/main/java/cn/mccreefei/model/User.java#L57,二者结合不起来呀
|
18
sinv 2019-08-19 21:01:42 +08:00 via iPhone
@wangkai0351 #16 你看到的这个文件是个抽象类,你看到的 return ……是 public String toString()这个方法里的,而不是你所认为的 User queryUser()方法,你看错了。
|
19
wangkai0351 2019-08-19 21:05:09 +08:00
@Allianzcortex
我不甚懂 java,我认为,User queryUser 和这条查询语句关联 https://github.com/MccreeFei/EasyChat/blob/master/src/main/resources/map/userMapper.xml#L7 不知道是否正确。 |
20
wangkai0351 2019-08-19 21:08:00 +08:00
@sinv 我清楚,我在 8 楼罗列的是两个 point,指的是这两个点分别有疑问。
|
21
sinv 2019-08-19 21:09:15 +08:00 via iPhone
@Allianzcortex #17 什么鬼?他把两个文件里的函数捏一起提的问题?
|
22
zazalu 2019-08-19 21:15:50 +08:00 via Android
仿佛要歪楼的样子。
|
23
Allianzcortex 2019-08-19 21:16:29 +08:00
@sinv
@wangkai0351 似乎问题不是在那两个代码,而是在 https://github.com/MccreeFei/EasyChat/blob/master/src/main/resources/map/userMapper.xml#L7 文件里的 ``` <mapper namespace="cn.mccreefei.dao.UserDAO"> <select id="queryUser" resultType="cn.mccreefei.model.User"> SELECT id, name, password FROM user WHERE name = #{name} AND password = #{password} </select> ``` Spring DAO 可以直接通过 sql 名字就生成查询代码,但对 ibatis 和 XML 不了解... |
24
sinv 2019-08-19 21:27:52 +08:00 via iPhone
@wangkai0351 #19 抱歉前面理解错误,现在好像懂你的意思了,其实在这一层,password 只作为普通数据来对待,而安全合规操作并不是在这一层处理或采用你说的过滤 password 来实现,比如数据库中不明文存储用户密码等。
|
25
AM2coder 2019-08-19 21:41:58 +08:00 via Android
楼歪得楼主掩面哭泣
|
26
xlui 2019-08-20 00:22:21 +08:00 via Android
@wangkai0351 #14 防注入在 Mybatis 的 XML 里做了
|
27
zifangsky 2019-08-20 08:30:26 +08:00
楼歪得楼主掩面哭泣=1
|
28
xaplux 2019-08-20 10:23:41 +08:00
|