-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
APIJSON的安全问题 #12
Comments
@zhongzilu 因为第3点,所以自动化写操作需要传 tag 来校验结构和内容; 可以参考3.1 操作方法 |
@zhongzilu 查询用户隐私信息Privacy:(请求失败,无GET权限) 看下源码: @MethodAccess(
GET = {},
GETS = {CIRCLE, OWNER, ADMIN}
)
public class Privacy {} 很明显,get是不允许的,可以用gets,但也必须是CIRCLE, OWNER, ADMIN这3种角色中的一个。 URL: http://apijson.cn:8080/gets/
仍然失败,因为没登录,未登录是UNKNOWN用户,这里自动补全为OWNER。 {
"Privacy": {
"id": 38710,
"@role": "owner" //如果没传role,服务器会填充默认的,具体看数据库 Request 表
},
"code": 407,
"msg": "未登录,请登录后再操作!"
} 那我们能不能伪造一下角色骗过APIJSON呢?试试看: {
"Privacy": {
"id": 38710,
"@role": "circle"
},
"tag": "Privacy"
} 还是一样的报错:未登录。 {
"Privacy": {
"id": 38710,
"@role": "circle"
},
"code": 401,
"msg": "id = 38710 的 Privacy 不允许 CIRCLE 用户的 GETS 请求!"
} 为什么呢?因为我登录的用户id是82001,id=38710的User不在它的圈子内。 {
"Privacy": {
"id": 38710,
"@role": "owner"
},
"tag": "Privacy"
} 哈!终于攻破了: {
"Privacy": {
"id": 82001,
"certified": 1,
"phone": 13000082001,
"balance": 8067
},
"code": 200,
"msg": "success"
} 好像不太对,这id怎么是82001,这不是我刚登录的账号吗? 最后再试试 "@ role": "admin" ,仍然报错: {
"Privacy": {
"id": 38710,
"@role": "admin"
},
"code": 406,
"msg": "角色设置错误!不允许在写操作Request中传 Privacy:{ @role:admin } !"
} 管理员角色是只能在服务器内部设置的,不允许传哦。 APIJSON在线测试: 点Star支持下吧^_^ |
谢谢你的详细回答,这打消了我的顾虑,同时也不得不佩服大佬的能力,我打算把APIJSON应用到我的实验项目中去,再次说声谢谢,已Start ^_^ |
可以的,有什么问题或建议及时反馈哈,还可以加群聊聊 |
已使用预编译全面防SQL注入,感谢支持^_^ |
亲请问 post权限检查能不能放开 怎么操作. 内部项目 登录验证都已经做好了 这边只是简单加几个接口 不需要检查权限. 谢谢 |
@Onesimu DemoVerifier 重写 verify 和 verifyLogin 方法,并且都注释掉里面的代码,就不会校验了 |
DemoVerifier这样加了还是不行, 提示是 "非开放请求必须是Request表中校验规则允许的操作"! |
@Onesimu 那是 数据和结构 校验,对应得在 Request 表里加一条校验规则记录, |
看了大佬的说明和介绍,小弟非常佩服,但仔细想想可能存在安全隐患,只要别人知道你的接口名,就可以获取他想要的内容了,不知道是否有安全机制的加入?
The text was updated successfully, but these errors were encountered: