【发布时间】:2020-11-03 02:27:57
【问题描述】:
首先我的英语说得不太好,但无论如何......
我知道我需要使用 allowed_hosts,但我需要使用所有“*”,并且标头攻击可能会导致以下情况:
<script src = "mysite.com/js/script.js"> <script>
到
<script src = "attacker.com/js/script.js"> <script>
或
mysite.com/new_password=blabla&token=blabla8b10918gd91d1b0i1
到
attacker.com/new_password=blabla&token=blabla8b10918gd91d1b0i1
但是所有静态文件都加载在nodejs服务器“cdn.mysite.com”上,并且所有域都在数据库中,所以我总是从数据库中获取域来与请求头进行比较,并使用来自向客户端发送任何内容的数据数据库:
views.py:
def Index(request):
url = request.META['HTTP_HOST']
cf = Config.objects.first()
if cf.domain == url:
form = regForm()
return render(request, 'page/site/home.html', {'form': form})
elif cf.user_domain == url:
ur = request.user.is_authenticated
if ur:
config = {'data' : request.user}
lojas = 'json.loads(request.user.user_themes)'
return render(request, 'app/home.html', {"config":config, "lojas":lojas})
else:
forml = loginForm()
return render(request, 'page/users/login/login.html', {'form':forml})
else:
redirect("//" + cf.domain)
这样使用还会不安全吗?
【问题讨论】:
标签: python django security content-security-policy