Ios 设置referer标头的安全风险?

Ios 设置referer标头的安全风险?,ios,django,security,http-referer,Ios,Django,Security,Http Referer,我目前正在编写一个iOS应用程序,它在服务器端与Django通信。当我试图发表文章时,我希望通信符合Django提供的CSRF中间件。我已经正确地传递了令牌,但为了使其充分发挥作用,我还被迫在请求中设置一个头值: [request setValue:@"https://mysite.com/" forHTTPHeaderField:@"Referer"]; 我的问题是,硬编码Referer值是否会带来任何安全问题?有人能帮我理解为什么Django会对此进行严格的检查吗?检查推荐人是否正确。如果

我目前正在编写一个iOS应用程序,它在服务器端与Django通信。当我试图发表文章时,我希望通信符合Django提供的CSRF中间件。我已经正确地传递了令牌,但为了使其充分发挥作用,我还被迫在请求中设置一个头值:

[request setValue:@"https://mysite.com/" forHTTPHeaderField:@"Referer"];
我的问题是,硬编码Referer值是否会带来任何安全问题?有人能帮我理解为什么Django会对此进行严格的检查吗?

检查推荐人是否正确。如果攻击者强制受害者的浏览器使用JavaScript/HTML/Flash执行POST或GET请求,则referer值将为空或攻击者CSRF攻击源的URL。在任何情况下,攻击者都无法将referer设置为
https://mysite.com/
在CSRF攻击中,因此此检查有助于减轻攻击


在iOS应用程序中设置HTTP referer绝对没有安全影响。

更改referer不会导致任何安全风险(或者至少不应该),因为正如您所看到的,referer可以被任何客户端替换,因此对于服务器来说非常不可靠。谢谢,这是我所怀疑的。这就引出了我问题的第二部分,为什么在我使用的Django框架中严格执行CSRF?