ruoyi vue 自动生成代码PUT DELETE为http不安全方法,这个怎么解决安全问题
如果有需要可以全局搜索java
、vm
、js
、vue
进行替换。
@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 / {
......
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论