3.2K Star 34.2K Fork 24.4K

若依 / RuoYi-Vue

 / 详情

ruoyi vue 自动生成代码PUT DELETE为http不安全方法,这个怎么解决安全问题

已完成
创建于  
2021-07-31 16:29

ruoyi vue 自动生成代码PUT DELETE为http不安全方法,这个怎么解决安全问题

评论 (3)

sup 创建了任务
sup 关联仓库设置为若依/RuoYi-Vue
展开全部操作日志

如果有需要可以全局搜索javavmjsvue进行替换。

@PutMapping@DeleteMapping 注解改成@PostMapping

前端method: 'put',method: 'delete'改成method: 'post'

@PostMapping不带参数的方法被add使用了,edit的@PutMapping全局替换为@PostMapping的话,两个@PostMapping都不带参数程序报错,不带参数的@PostMapping只能有一个

只改前端不改后端的方法:
https://blog.csdn.net/weixin_53458434/article/details/118673550

1.前端必须改代码,这个无法绕过,所有的PUT/DELETE请求,都要求改成POST;
所有的PUT请求,要携带Header:X-HTTP-Method-Override: PUT
所有的DELETE请求,要携带Header:X-HTTP-Method-Override: DELETE
像作者所说,替换src/api中所有:
替换 method: 'put' 为
method: 'post',
myType: 'put'
替换 method: 'delete' 为
method: 'post',
myType: 'delete'
并更改 /src/utils/request.js

// request拦截器
service.interceptors.request.use(config => {
.........
    //为 method 原来为 put 和 delete 的请求,添加http头信息
    if (config.myType === 'delete') {
      config.headers['X-HTTP-Method-Override'] = 'DELETE'
    }
    if (config.myType === 'put') {
      config.headers['X-HTTP-Method-Override'] = 'PUT'
    }

2.服务端根据Header:X-HTTP-Method-Override,转换请求method
或在nginx层修改和转发,服务端不需要做任何处理即可,参考配置

#在nginx的server中添加
    set $method $request_method;
    if ($http_X_HTTP_Method_Override ~* 'DELETE') {
       set $method DELETE;
    }
		
    if ($http_X_HTTP_Method_Override ~* 'PUT') {
        set $method PUT;
    }
		
    proxy_method $method;
        
    location / { 
		......
若依 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(4)
1151004 y project 1578942802 343911 chutianshu1981 1578920721
JavaScript
1
https://gitee.com/y_project/RuoYi-Vue.git
git@gitee.com:y_project/RuoYi-Vue.git
y_project
RuoYi-Vue
RuoYi-Vue

搜索帮助

344bd9b3 5694891 D2dac590 5694891