gpt4 book ai didi

javascript - 如何防止同站伪造?

转载 作者:行者123 更新时间:2023-11-30 06:27:34 25 4
gpt4 key购买 nike

我有一个页面,它会在用户分享帖子后向服务器发出 ajax 请求以增加一个值:

FB.ui({
method: 'feed',
name: 'Share',
link: 'http://{{ request.META.HTTP_HOST }}{% url "facebook_competition" %}',
}, function(response){
if (response && response.post_id) {
$.post('http://mysite.net/shared/', {post_id:response.post_id});
}
});

我的网站受 CSRF token 保护,如下所示:

jQuery(document).ajaxSend(function(event, xhr, settings) {
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
var csrftoken = $('meta[name="csrf-token"]').attr('content');
//var csrftoken = $.cookie('csrftoken');
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
})

但是我如何有效地阻止用户加载页面然后在控制台中触发 ajax 请求,例如:

for (var i=0; i<100; i++){
$.post('http://mysite.net/shared/', {post_id:1234});
}

我考虑过IP、频率检查等,但它们非常无效。

最佳答案

要完全阻止它,您可能无能为力,但您可以结合您尝试过的方法来使它变得更加困难。最后,您可以考虑在每次刷新时生成一些唯一的、一次性使用的 token ,该 token 应与共享操作的 post_id 一起发布,这样您的用户就必须重新加载您的页面才能第二次更新您的计数器。

此外,(可能很明显)如果您的用户不是匿名的,您可以忽略他们已经引起的反向增量。

关于javascript - 如何防止同站伪造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20180568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com