标签: csrf

javascript securty:用于记录用户屏幕分辨率的AJAX调用,是否可以防止伪造数字?

这是一个javascript安全问题:假设页面找出计算机的屏幕分辨率,例如1024 x 768,并且想要使用AJAX调用将此数据记录到数据库中.

有没有办法真正防止伪数据输入数据库?我认为无论HTML或Javascript做什么,用户都可以对代码进行反向工程,以便将一些假数字输入数据库,或者是否有办法防止它完全发生?(100%安全).

更新:或者在类似的情况下......如果我写一个简单的javascript游戏......有没有办法让用户通过AJAX发回分数并谎称他们的分数?

javascript security csrf javascript-security

1
推荐指数
1
解决办法
731
查看次数

CakePHP和CSRF

我是CakePHP的新手,我想知道如何保护我的表单免受Cross Site Request Forgery的攻击,即在表单中添加一个nonce.我在配置文件中设置了salt.

php cakephp csrf

1
推荐指数
1
解决办法
2826
查看次数

有没有人看到做以下事情以防止CSRF的任何缺点?

我想知道以下方法是否会完全阻止CSRF,并与所有用户兼容.

这里是:

在表单中只包含一个额外的参数:encrypted(user's userID + request time).服务器端只是解密并确保它是正确的用户ID,并且请求时间是合理的近期.

除了嗅探用户流量或破坏加密的人,这是完全安全的吗?有什么缺点吗?

security csrf

1
推荐指数
1
解决办法
224
查看次数

Django中的CSRF错误; 如何将CSRF添加到登录视图?

我有一个简单的表单,我希望用户能够登录; 这里是带有CSRF标签的模板代码:

<html>
<head><title>My Site</title></head>

<body>
    <form action="" method="post">{% csrf_token %}
        <label for="username">User name:</label>
        <input type="text" name="username" value="" id="username">
        <label for="password">Password:</label>
        <input type="password" name="password" value="" id="password">

        <input type="submit" value="login" />
        <input type="hidden" name="next" value="{{ next|escape }}" />
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在这是我的views.py页面.问题是我在哪里放入CSRF支持部分(现在我得到CFRS令牌错误),我该怎么做?

from django.contrib import auth

def login_view(request):
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    user = auth.authenticate(username=username, password=password)
    if user is not None and user.is_active:
        # Correct password, and the user is marked "active"
        auth.login(request, user)
        # Redirect to …
Run Code Online (Sandbox Code Playgroud)

python django csrf django-csrf

1
推荐指数
1
解决办法
2936
查看次数

Django:在尝试了大量修复后仍然出现CSRF错误

我收到"CSRF令牌丢失或不正确".

我已经检查了Stack Overflow的答案,但没有任何效果; 我仔细检查了我的消息来源,真的不知道我做错了什么.它仅在我评论该MIDDLEWARE_CLASSES行时才有效CsrfViewMiddleware,但我认为这是我永远不需要做的事情.

以下是我认为相关的代码片段:

settings.py

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.csrf.CsrfResponseMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

views.py

from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext
from sitfin.models import Balanta, Conturi, BalantaForm, ConturiForm
from django.forms.formsets import formset_factory

def render_to_response(req,*args,**kwargs):
    kwargs['context_instance']=RequestContext(req)
    return render_to_response(*args,**kwargs)

def conturi_index(request):
    return render_to_response('sitfin/conturi_index.html',{'conturi_list':Conturi.objects.all()})

def conturi_introducere(request):
    ConturiFormSet=formset_factory(ConturiForm)
    if request.method=='POST':
        #form=ConturiForm(data=request.POST)
        formset=ConturiFormSet(request.POST, request.FILES)
        #if form.is_valid():
        if formset.is_valid():
            #new_entry=form.save()
            new_entry=formset.save()
            return HttpResponseRedirect("sitfin/conturiok")
    else:
        #form=ConturiForm()
        formset=ConturiFormSet()
    #return render_to_response('sitfin/conturi_introducere.html',{'form':form})
    return render_to_response('sitfin/conturi_introducere.html',{'formset':formset})
Run Code Online (Sandbox Code Playgroud)

模板

<html>
<head> …
Run Code Online (Sandbox Code Playgroud)

python django csrf

1
推荐指数
1
解决办法
1080
查看次数

如何在控制器上检查令牌(CSRF)?

Laravel有一些选项允许Laravel创建一个令牌并在服务器端测试它以引发CSRF攻击.

我在Laravel网站上发现了这个,但没有说如何从Controller检查是一个攻击还是来自本地和真实页面.

如何在控制器上检查令牌(CSRF)?

php csrf laravel laravel-4

1
推荐指数
1
解决办法
1万
查看次数

Rails:测试并处理ActionController :: InvalidAuthenticityToken

我有一个Rails网络应用程序,用户可以使用一些表单进行评论等.他们经常被垃圾邮件发送者用来尝试创建垃圾评论.没什么新鲜的.

有时我会遇到导致ActionController :: InvalidAuthenticityToken异常的CSRF-hack尝试.这种情况发生了很多,我想拯救并将用户/机器人发送到"你没有评论"页面.

事实证明这是一个棘手的例外,因为我不能自己重新创建错误.当模型(由表单创建)被保存但是它没有捕获异常时,我首先在#create中进行了拯救.为了做到这一点,我考虑让它覆盖整个控制器部分,但这似乎超过顶部.

我的两个问题:

  1. 有没有办法自己重新创建一个ActionController :: InvalidAuthenticityToken错误,所以我可以测试一下吗?

  2. 什么时候提出异常?在.save期间?在Comment.new?基本上,我应该在哪里开始/救援?

谢谢!

exception-handling ruby-on-rails csrf

1
推荐指数
1
解决办法
1216
查看次数

Chrome扩展程序和CSRF无敌

假设我们有一个在表单中使用CSRF令牌的站点.

现在我们有一个浏览器/ chrome扩展(css,js,html),它使用隐藏在输入中的CSRF来执行发布请求并更改应用程序的状态.

如何防止这种攻击呢?或者我错过了什么?

csrf firefox-addon google-chrome-extension safari-extension csrf-protection

1
推荐指数
1
解决办法
638
查看次数

CSRF是否安全?

很多人谈论实施CSRF以阻止网页上的跨站点攻击.但我认为破坏CSRF并向服务器发出请求非常容易.

它是如何工作的?

  1. 您从一个页面开始,渲染一个表单并使用CSRF令牌保留一个隐藏字段.
  2. 提交表单时,其他页面将使用CSRF令牌以验证请求.
  3. 验证请求时,服务器将检查带有密码的CSRF令牌以查看令牌是否有效.
  4. 现在秘密本身存储在会话或cookie中.

这意味着如果我去网站,从网页复制CSRF令牌,从浏览器网络选项卡复制会话值.在此之后我可以构造一个CURL请求,设置这些值并尽可能多地发出请求.

那么CSRF的需求是什么?

csrf csrf-protection

1
推荐指数
1
解决办法
256
查看次数

POST请求中的CSRF令牌无效

概述
我将使用API​​ Gateway作为基于Spring安全性的身份验证.我刚刚按照https://spring.io/guides/tutorials/spring-security-and-angular-js/链接中的步骤创建了一个基于其对应的github项目的"pair-double"模块的项目的https://github.com/spring-guides/tut-spring-security-and-angular-js.git.

问题
问题在于,当向服务器提交任何POST请求时,将抛出"无效的CSRF令牌"异常.抛出异常的示例如下:

{
  "timestamp": 1461714933215,
  "status": 403,
  "error": "Forbidden",
  "message": "Invalid CSRF Token '1cdc44ad-43cb-44e6-b903-bec24fe903fd' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'.",
  "path": "/ui/test"
}
Run Code Online (Sandbox Code Playgroud)

我检查了一个重新检查的问题,但没有用.我用postman测试了这个场景,并将'X-XSRF-TOKEN'设置为POST请求的标题,但什么也没发生.


所以,由于我是初学者使用Spring安全方法,如果有人能建议我一个解决方案,我将不胜感激.

security post spring csrf angularjs

1
推荐指数
1
解决办法
8096
查看次数