移动客户端请求后端API的时候可以加密和验证,AJAX请求写在JS文件中,接口地址,请求参数等信息全部暴露了,即使加密,JS加密代码也可以直接查看,如何保证安全性?
我没有前端开发经验,如有错误之处,还请各位见谅。
移动客户端请求后端API的时候可以加密和验证,AJAX请求写在JS文件中,接口地址,请求参数等信息全部暴露了,即使加密,JS加密代码也可以直接查看,如何保证安全性?
我没有前端开发经验,如有错误之处,还请各位见谅。
|
kanegJul 11, 2015
1
API 接口暴露不等于谁都可以自由调用,你可以在API调用中增加鉴权,只有鉴权过后的调用才是有效的。例如增加一个session id之类的。
|
|
dalaomjJul 11, 2015
3
如果是非常重要的、不能面向公网的数据。那就后端请求接口,前端只有请求结果。
|
|
YuJianrongJul 11, 2015 via iPad
4
设计ajax请以信息就是对客户公开为前提来设计。
|
|
virusdefenderJul 11, 2015
5
即使别人不直接调用ajax接口 还是可以采集HTML的 没办法绝对杜绝,只能加大难度。
因为你说的是移动客户端,可以采用下面的办法 1 严格注册条件,比如验证手机号邮箱等,然后登陆后调用,每个账号都有自己的频率限制 2 使用https,key pinning, 能杜绝部分小白直接去抓包 3 代码混淆加appid、app_secret、nonce的形式,防止请求重放 |
|
hjc4869Jul 11, 2015
6
@virusdefender key pinning对浏览器的客户端完全没用= =
|
|
kokdemoJul 11, 2015
7
@YuJianrong 赞成
|
|
FrankFang128Jul 12, 2015
9
HTTP 就是不安全的呀
|
|
spritevanJul 12, 2015
10
|
|
loadingJul 12, 2015 via Android
11
传输加你也就只能 https
你说的认证,session 这些应该不用多说。 |
|
tftkJul 12, 2015
13
Nginx ACL.
|
|
fuermosi777Jul 12, 2015
16
https + http://chuansong.me/n/1386175
|
|
17
@oott123 两个不同的方面吧。浏览器只能看见自己的数据和通用数据的格式。每个用户请求的结果肯定是不一样的。
实际是防止不了别人发现你的接口的,但我们要做的是发现了接口用不了(用户验证),以及所有用户数据在接口传输过程中的安全(防止撒网抓包)。 若是要防止被采集的话(信息展示类的网站),ajax 其实只是稍微提高了采集的难度。 |
|
johnsmith123Jul 12, 2015
18
这和前端页面的隐私一样没啥意义吧
|
|
imlonghaoJul 12, 2015
19
@kaneg 我认为楼主讲的是防止AJAX请求被抓包,就算页面使用了https,使用Fiddler 2等,安装Fiddler的根证书,本地是可以抓https的包的。楼主将的应该是这种。
|
|
20
抓包。。。 没有抓不到的包吧
|
|
iyangyuanJul 13, 2015
22
f12->network 一目了然
|