我在我的javascripts中使用了几个地方的window.location.href
。有没有任何通用的方法来将CSRF令牌添加到所有这些令牌?为window.location.href添加CSRF令牌
由于window.location的是一个对象,
window.location.href
是其属性的一个 ,我们不能将其覆盖。编写一个像下面这样的通用函数,并且路由所有的 实例将会更加人工和耗时。
addCSRFAndProceed(url);
function addCSRFAndProceed (url) {
window.location.href = url + getCSRFTokenAndValue();
}
后端代码 这里是从我的后端设置CSRF cookie中的代码。
$_COOKIE['CSRFTOKEN'] = '123456';
HTML代码
<div class="redirect-button" onclick="TriggerRequest()">
Javascript代码
function TriggerRequest() {
window.location.href="www.mysite.com/?index.php&from=desktop";
}
我有使用window.location.href
和期待一个通用的解决方案,以追加标记将网址,因为这将不同的功能忙于手动追加所有功能。
你应该产生在后端的CSRF令牌(假设你是不是在谈论Node.js的),你如果你想有一个“标准”的地方来获得令牌,可以把它放在标题中。但是,你需要csrf重定向吗?将它用于表单不是更好吗? –
我使用的是纯javascript。我已经创建了CSRF令牌并将其保存在cookie中。我同意**最好使用表单,并且我们可能不需要CSRF重定向**。 但不幸的是,我的后端逻辑来检查CSRF令牌没有更多的智能来分离不同类型的请求,并最终从前端修复。 – Barath
但客户端如何生成csrf令牌保护你? *“永远不要相信客户端”* –