postman可以 提交post请求
不受浏览器跨域限制
这样是不是网站登录就可以在postman中登录了
怎么样给网站做限制
不能在这种调试接口的工具中提交
我是明白浏览器才有的跨域限制
对于其他接口的话 只要参数对了 就会提交成功 只要后端不做限制 前端做的都是没有用的
现在就是在想怎么样才能阻止跨浏览器请求 让他只能在本网站上请求
求大神多多建议几个方法
postman可以 提交post请求
不受浏览器跨域限制
这样是不是网站登录就可以在postman中登录了
怎么样给网站做限制
不能在这种调试接口的工具中提交
我是明白浏览器才有的跨域限制
对于其他接口的话 只要参数对了 就会提交成功 只要后端不做限制 前端做的都是没有用的
现在就是在想怎么样才能阻止跨浏览器请求 让他只能在本网站上请求
求大神多多建议几个方法
防止跨域是浏览器的一个安全策略而已,当你用postman
的时候,自然就没有跨域的概念了,你何时见到C/S客户端
有跨域的问题的.
http 请求本质上就是发送数据到指定的 url ,然后服务器接受这些数据,根据接收的数据返回数据.只要发送的数据是对的,那么就会返回数据.否则这个 api 就是有 bug 的.
而只要是数据,那就可以模仿.如果要防止这种情况的话,就是在提高模拟成本上去下功夫了.比如要求每次访问的时候,需要带一个动态的参数,这样postman
是没法自动生成的,那每次别人要通过postman
来调试的话,就需要去手动生成这么一个参数,这样一来就提高了调试的成本.如果还不够,可以在这个参数上去扩展,比如增加参数的生成难度,或者增加参数的生成数量之类的,比如每次计算这个参数,都需要去取localStorage
里面的数据来运算,在增加调试的成本.
或者可以增加重定向,每次不是直接放回,而是返回一个重定向的 url ,数据都从这个 url 返回,这样每次调试就需要复制一次返回的重定向地址,在访问.还不行就在多加几次重定向,累死调试的人.还可以在重定向的时候,加上上面的参数需求.
当然这么做最多只是增加调试成本,而没法阻止.
或者对方干脆就是用fiddler
,正常用浏览器访问,然后通过fiddler
拦截,修改参数重新发送.
针对不同的情况有不一样的解决方案,你需要根据实际需要去考虑是不是真的要这么做.毕竟每增加一层都是在消耗成本和体验度的.
跨域是浏览器的限制,就算不能用postman,那我自己写个请求模拟登陆你一样阻止不了,虽然后端可以检查请求来源ip,但这些都可以通过设置代理,伪造的请求头来绕开,大多数情况下对应的成本和收益不成比例。
再说既然人家都能登陆了,你阻止它在postman中登陆有啥意义呢。
POSTMAN 提交请求时默认会自动在提交的 User-Agent 中携带 POSTMAN 关键字,但是此值可以修改。
就像开发API给 Android 或者 iOS 使用,这些也并不受跨域控制,你可以在自己的API里面加认证信息,来阻止未经授权的访问。
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答875 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
做不到,你可以简单hash验证来做简单验证,如CSRF TOken等,但可以模拟,只是单纯的用postman就困难了