asp.net core安全事项(下)

  • 越权

越权是非常严重的安全漏洞,通常状态是开发人员对请求的限制逻辑不严格导致的。

如果系统中有角色的概念,越权可能出现不同角色间的越权和同角色间的越权。

相同角色:

A用户,B用户是相同的角色。

A用户和B用户都可以调用 /photo/{id}。

这个url,如果在后端不判断这个phtoto的id属于那个用户的,就很容易造成越权,这里只要A用户登录验证通过后,就可以用这个api,换id来请求到B用户的照片信息,这种情况下通常在后端要把id和用户id都当成查询条件,去库中查询,这样就能有效防止越权。

其实就是加了一层过滤,是谁的数据。如果数据归属权有层级,交叉,那将是更复杂的控制,不过这些都是业务逻辑决定的。

        [HttpGet("/photo/{id}")]public IActionResult GetPohot(int id){//数据集全var photos = new List<dynamic>{new {ID=1, Name="第一张",User="A"},new {ID=2, Name="第二张",User="B"},new {ID=3, Name="第三张",User="A"},new {ID=4, Name="第四张",User="B"}};//越权//return new JsonResult(photos.SingleOrDefault(s => s.ID == id));//增加数据所属条件return new JsonResult(photos.SingleOrDefault(s => s.ID == id && s.User == User.Identity.Name));}

有时,我们很容易忽略一些数据所有权,比较上传的文件,图片,属于那个用户,可能在表里对文件,图片和用户作了绑定,但当前端访问或下载这个文件,图片时,并没有去对文件,图片所有权作个判断,从而造成越权风险。

不同角色:

A角色,B角色有不同的功能

很多时候,不同的角色有不同的功能,这些功能是通过菜单在UI上显示,当不同的角登录后,只能看见属于自己的功能,如果不在服务端对每个api和角色加以映射判断(api层的权限设定很重要),就很容易造成越权,虽然A角色在UI上看不到B角色的功能菜单,一但A记下B角角功能的url,也会很顺利的访问到B角色的功能。

还有一个就是权限控制模块的处理,如果多个角色都有不同的权限控制权限,一定要设置好权限的范围控制,权限低的不能添加或修改成权限高的用户,负责后果很严重,老板很生气。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[导入]php 安全基础 第八章 共享主机 文件系统浏览

8.4. 文件系统浏览 除了能在共享服务器上读取任意文件之外&#xff0c;攻击者还能建立一个可以浏览文件系统的脚本。由于你的大多数敏感文件不会保存在网站主目录下&#xff0c;此类脚本一般用于找到你的源文件的所在位置。请看下例&#xff1a; <pre> <?php if (iss…

python求函数极值_python 遗传算法求函数极值的实现代码

废话不多说&#xff0c;大家直接看代码吧&#xff01;"""遗传算法实现求函数极大值—Zjh"""import numpy as npimport randomimport matplotlib.pyplot as pltclass Ga():"""求出二进制编码的长度"""def __init__…

java读取文件跳过_在Java中读取文本文件-为什么跳过行?

我是新来的,只是努力尝试读取文本文件.每行上都有一个单词和相应的数字代码.想法是将其读取并将代码和单词放在单独的变量中.我对这个领域了解不多,但是我一直在网上四处寻找,并提出了以下建议&#xff1a;try{FileReader freadernew FileReader(f);BufferedReader inFilenew B…

程序员的项目周期(表情包版)

0. 需求审评会议进行中1. 开发阶段进行中….2. 代码复查阶段3. 测试阶段….4. 需求突然要改….5. 项目上线

巧用Dictionary实现日志数据批量插入

背景最近再做一个需求&#xff0c;就是对站点的一些事件进行埋点&#xff0c;说白了就是记录用户的访问行为。那么这些数据怎么保存呢&#xff0c;人家点一下保存一下&#xff1f;显然不合适&#xff0c;肯定是需要批量保存&#xff0c;提高效率。问题窥探首先&#xff0c;我想…

[导入]php 安全基础 附录B. 函数

附录B. 函数 在我写作本书的时候&#xff0c;http://php.net/quickref.php列出了共3917个函数&#xff0c;其中包括一些类似函数的语法结构&#xff0c;在此我不准备把它们从函数中区分开来&#xff0c;而是把它作为函数看待。 由于函数数量很大&#xff0c;一一说明它们的正确…

python os rename用法_Python os.rename() 方法

Python os.rename() 方法概述os.rename() 方法用于命名文件或目录&#xff0c;从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。语法rename()方法语法格式如下&#xff1a;os.rename(src, dst)参数src -- 要修改的目录名dst -- 修改后的目录名返回值该方法没有返回值实…

java匿名内部类runnable_java匿名内部类用法总结实例源码

java匿名内部类用法总结实例源码。当需要extends一个类&#xff0c;或implements一个接口的时候&#xff0c;可以直接new一个这个类或接口的对象出来&#xff0c;然后在后面加&#xff5b;&#xff5d;&#xff0c;里面写你准备写在子类里面的所有东西。这样&#xff0c;new出来…

6段Python代码刻画深度学习历史:从最小二乘法到深度神经网络

最小二乘法深度学习的一切都起源于这个数学片段&#xff08;我把它用Python 写了出来&#xff09;&#xff1a;这一方法是 1805 年巴黎数学家阿德利昂玛利埃勒让德首次提出的&#xff08;1805&#xff0c;Legendre&#xff09;&#xff0c;勒让德建立了许多重要的定理&#xff…

win7美化_Potplayer64位美化版,无棒子的tv推送

potplayer 64位是一款视频播放器&#xff0c;potplayer 64位目前正在新功能全力开发中&#xff0c;由于采用delphi编译程序kmplayer的一些弊端&#xff0c;姜龙喜先生为改进播放器本身的一些性能而重新用vc进行构架&#xff0c;有需要的伙伴们可以移步简易下载站获取&#xff0…

如何在 C# 8 中使用 Channels

在面对 生产者-消费者 的场景下&#xff0c; netcore 提供了一个新的命名空间 System.Threading.Channels 来帮助我们更高效的处理此类问题&#xff0c;有了这个 Channels 存在, 生产者 和 消费者 可以各自处理自己的任务而不相互干扰&#xff0c;有利于两方的并发处理&#x…

mockito mock void方法_使用 Junit + Mockito 实践单元测试!

一、前言相信做过开发的同学&#xff0c;都多多少少写过下面的代码&#xff0c;很长一段时间我一直以为这就是单元测试...SpringBootTestRunWith(SpringRunner.class)public class UnitTest1 {Autowiredprivate UnitService unitService;Testpublic void test() {System.out.pr…

Outlook 阅读窗格(Reading Pane)

打开 Outlook 点一下邮件&#xff0c;在右侧会有每封邮件的内容预览。突然有一天你发现它不在了知道该怎么调出来吗&#xff1f;我是刚学到的。英文: View--->Reading Pane--->Right&#xff08;右侧&#xff09; Bottom&#xff08;底部&#xff09; Off&#xf…

java web编写计算器_javaWeb 使用 jsp 和 javaBean 实现计算器功能

jsp 和 javaBean 实现计算器功能try {calculator.calculate();} catch (Exception e) {out.write(e.getMessage());}%>简单的计算器第一个参数运算符-*/第二个参数结果package de.bvb.domain;import java.math.BigDecimal;public class Calculator {private String firstNum…

人为什么会出轨?麻省理工学院告诉你:男女配对的真相

该实验出自麻省理工学院著名经济学家Dan Ariely的《The Upside of Irrationality》。结果很有趣&#xff0c;在我们的生活中也尤为常见。实验人员找来100位正值青春年华的大学生&#xff0c;男女各半。然后制作了100张卡片&#xff0c;卡片上写了从1到100总共一百个数字。单数的…

当 .NET 5 遇上OpenTelemetry,会碰撞出怎样的火花?

OpenTelemetry 介绍我在之前的几篇文章都介绍了 OpenTelemetry, 你可以在这里找到OpenTelemetry - 云原生下可观测性的新标准深入研究.NET 5的开放式遥测OpenTelemetry是谷歌和微软共同推进的云原生监控的新规范&#xff0c; 兼容OpenTracing和OpenCensusOpenTelemetry的终极目…

教程大派送

都是华夏的 喜欢的拿去远程控制任我行脱壳 - [Money] 链接地址 :[url]http://download.77169.com/donghua/Crcak/xgyc.zip[/url]让你QQ永远不被***盗走 - [antty] 链接地址: [url]http://download.77169.com/donghua/hackQQ/qqfd.zip[/url]BT下载之疯狂抓鸡 - [奶茶] 链接地址:…

kotlin中mainactivity无法直接调用xml中的控件_使用52North 客户端接口调用OGC WPS服务...

52North是一个来自研究机构、工业界和公共行政管理界的研究者组成的开放国际合作组织&#xff0c;他们通过协作研发流程促进地理信息学创新。具体来说他们开发新的地理信息概念和技术&#xff0c;例如用于管理时空测量数据&#xff0c;以及通过网络共享地理处理技术。他们评估新…

python 密码学 模块_python学习-itsdangerous模块-黑马程序员技术交流社区

博客链接地址&#xff1a;http://www.zhuyannan.top/itsdangerous-加密你的数据/如果你想向不可信的环境发送数据&#xff0c;但又担心数据被别人利用&#xff0c;就可以使用 itsdangerous来加密签名你的数据。接收者可以破译内容&#xff0c;来看看你的包裹里有什么&#xff0…

明天放假,我放价!一个国庆假期教你学会数学建模

原价298元&#xff0c;国庆放价&#xff01;248元即可报名学习&#xff01;数学建模涉及的内容比较广泛&#xff0c;比如碎纸片问题中所涉及的图像识别及神经网络、小区开放问题中所涉及的车流模拟仿真、还有“互联网”时代的出租车资源配置中所涉及的运筹调度。或许数学建模的…