微信公众号开发授权与安全控制

106 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天,点击查看活动详情

微信公众号网页授权流程

用户访问客户端,导向认证服务器

用户选择是否给予客户端授权

假设用户给予授权,认证服务器将用户导向客户端事先指定的重定向url,同时附上一个授权码

客户端收到授权码,附上早先的"重定向url",先认证服务器令牌,这一步是在客户端的后台服务器完成,对用户不可见

认证服务器核对了授权码和重定向url,向客户端发送访问令牌(access)和更新令牌(refresh token)

 

获取用户信息(用户登录)

配置网页端的回调

微信jssdk

通过javaScript代码使用微信原生功能的工具包

可以调用微信原生应用 拍照语音扫一扫

 

验证 扫描二维码测试,发送信息测试

crypto模块是为了提供通用的加密和哈希算法,

通过cypto这个模块暴露为javascript接口

SHA1算法,安全哈希算法, 会产生一个160位的消息摘要 ,不可变成->摘要固定长度

多进程下保存token需要全局维护

 

ngrok 好用的外网映射工具

点击隧道管理,打开隧道

编辑隧道信息-填入隧道明,前置域名

本地映射的端口会和web项目的http访问端口对应

确定添加并启用,复制隧道id

启动ngrok,在窗口中战天隧道id,按enter键

 

浏览器安全控制

X-XSS-Protection 防止反射型XSS

Strict-Transport-Security 强制使用HTTPS通信

CSP

http响应头,允许站点管理者在指定的页面控制用户代理的资源

除了少数例外,这条政策极大的指定服务源以及脚本端点,防止跨站脚本的攻击

 

cookie域

domain 这个属性用来比较请求URL中服务端的域名,

如果域名匹配成功,或者是其子域名,则继续检查path属性

path 除了域名, cookie可用的URL路径也可以被指定,当域名和路径都匹配,cookie才会发动请求