这是一个javascript安全问题:假设页面找出计算机的屏幕分辨率,例如1024 x 768,并且想要使用AJAX调用将此数据记录到数据库中.
有没有办法真正防止伪数据输入数据库?我认为无论HTML或Javascript做什么,用户都可以对代码进行反向工程,以便将一些假数字输入数据库,或者是否有办法防止它完全发生?(100%安全).
更新:或者在类似的情况下......如果我写一个简单的javascript游戏......有没有办法让用户通过AJAX发回分数并谎称他们的分数?
我是CakePHP的新手,我想知道如何保护我的表单免受Cross Site Request Forgery的攻击,即在表单中添加一个nonce.我在配置文件中设置了salt.
我想知道以下方法是否会完全阻止CSRF,并与所有用户兼容.
这里是:
在表单中只包含一个额外的参数:encrypted(user's userID + request time).服务器端只是解密并确保它是正确的用户ID,并且请求时间是合理的近期.
除了嗅探用户流量或破坏加密的人,这是完全安全的吗?有什么缺点吗?
我有一个简单的表单,我希望用户能够登录; 这里是带有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) 我收到"CSRF令牌丢失或不正确".
我已经检查了Stack Overflow的答案,但没有任何效果; 我仔细检查了我的消息来源,真的不知道我做错了什么.它仅在我评论该MIDDLEWARE_CLASSES行时才有效CsrfViewMiddleware,但我认为这是我永远不需要做的事情.
以下是我认为相关的代码片段:
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)
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) Laravel有一些选项允许Laravel创建一个令牌并在服务器端测试它以引发CSRF攻击.
我在Laravel网站上发现了这个,但没有说如何从Controller检查是一个攻击还是来自本地和真实页面.
如何在控制器上检查令牌(CSRF)?
我有一个Rails网络应用程序,用户可以使用一些表单进行评论等.他们经常被垃圾邮件发送者用来尝试创建垃圾评论.没什么新鲜的.
有时我会遇到导致ActionController :: InvalidAuthenticityToken异常的CSRF-hack尝试.这种情况发生了很多,我想拯救并将用户/机器人发送到"你没有评论"页面.
事实证明这是一个棘手的例外,因为我不能自己重新创建错误.当模型(由表单创建)被保存但是它没有捕获异常时,我首先在#create中进行了拯救.为了做到这一点,我考虑让它覆盖整个控制器部分,但这似乎超过顶部.
我的两个问题:
有没有办法自己重新创建一个ActionController :: InvalidAuthenticityToken错误,所以我可以测试一下吗?
什么时候提出异常?在.save期间?在Comment.new?基本上,我应该在哪里开始/救援?
谢谢!
假设我们有一个在表单中使用CSRF令牌的站点.
现在我们有一个浏览器/ chrome扩展(css,js,html),它使用隐藏在输入中的CSRF来执行发布请求并更改应用程序的状态.
如何防止这种攻击呢?或者我错过了什么?
csrf firefox-addon google-chrome-extension safari-extension csrf-protection
很多人谈论实施CSRF以阻止网页上的跨站点攻击.但我认为破坏CSRF并向服务器发出请求非常容易.
这意味着如果我去网站,从网页复制CSRF令牌,从浏览器网络选项卡复制会话值.在此之后我可以构造一个CURL请求,设置这些值并尽可能多地发出请求.
那么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安全方法,如果有人能建议我一个解决方案,我将不胜感激.