asp.net core安全事项(上)

  • 隐藏web服务端信息

创建一个asp.net core mcv web项目,运行,F12查看返回信息,如下图,会清晰看到服务端的类型是kestrel.

有时安全检测要求不能显示服务端信息,这样在一定程度上能降低被 攻击的风险,具体代码如下:

    public class Program{public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.ConfigureKestrel(opt =>{//隐藏服务端信息opt.AddServerHeader = false;});webBuilder.UseStartup<Startup>();});}

效果如下,kestrel被隐藏起来了。

  • 防止重定向

     [AllowAnonymous][HttpPost("login")]public IActionResult Login(string userName,string password,string returnUrl = "/"){//这里省略n行代码return Redirect(returnUrl);}

上面代码中,一般验证用户信息后会跳转到一个站内页面,这个时候会带有returnUrl,这个url如果被篡改成其他站点url,就样就会把我们引导到其他站点提供授权信息,从而泄露自己的登录信息,怎么破?如下:

        [AllowAnonymous][HttpPost("login")]public IActionResult Login(string userName, string password, string returnUrl = "/"){//这里省略n行代码//return Redirect(returnUrl);return LocalRedirect(returnUrl);//orif (Url.IsLocalUrl(returnUrl)){return Redirect(returnUrl);}else{return Redirect("/error");}}
  • 登出,登录次数限制

 public async Task<IActionResult> Logout(){//logout要使登录的cookie失效await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);return RedirectToAction("Index", "Home");
}

有登录,就要一定要有登出,如果是基于cookie,让客户端cookie清除,如果是jwt,token一定要有过期(或服务端维护状态让其实效)。这样可以有效防止授权信息被别人再利用。

另一方面要设计一定时间内登录错误次数锁定帐户功能,在一定程度上也能减少被攻破的风险。

(未完待续)

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

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

相关文章

云水画中人,独立一江秋

转载于:https://blog.51cto.com/wuliguo/50014

python是c语言_python与c语言

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; python语言调用c语言进行扩展&#xff0c;或者增加程序的运行速度都是特别方便的。 同时还能获得与c或者c几…

aes算法实现c语言_以C语言实现归并排序为例,谈谈五大常用算法之一的“分治法”...

分治算法&#xff0c;顾名思义就是“分而治之”&#xff0c;即把规模较大的复杂问题拆分为若干规模较小的类似子问题&#xff0c;并逐个解决&#xff0c;最后再将各个子问题的解决结果合并&#xff0c;得到原始问题的结果的方法。这个技巧是很多高效算法的基础&#xff0c;例如…

一朝读码深似海,不读源码薪难升!读懂.NET5源码,到底多重要?

谈到源码分析&#xff0c;很多人会有这样的疑问&#xff1a;“.NET5的基本功能我已经掌握了&#xff0c;还有读源码的必要吗&#xff1f;”实际上&#xff0c;阅读源码不仅能够帮你更深刻地理解底层设计原理&#xff0c;提升你的系统架构能力和编码功力&#xff0c;还能让你知道…

使用SQL语句获取SQL Server数据库登录用户权限

返回一个报表&#xff0c;报表中包含当前数据库中某对象的用户权限或语句权限的信息。语法sp_helprotect [ [ name ] object_statement ][ , [ username ] security_account ][ , [ grantorname ] grantor ][ , [ permissionarea ] type ]参数[name ] object_statement是当…

如何在 ASP.Net Core 使用 分布式缓存

ASP.Net Core 提供了多种类型的缓存&#xff0c;除了内存缓存和响应缓存之外&#xff0c;还提供了对 分布式缓存 的支持。在之前的一篇文章中&#xff0c;我讨论了 ASP.Net Core 的内存缓存。在本文中&#xff0c;我们将讨论如何在 ASP.Net Core 中使用分布式缓存&#xff0c;本…

50万数据生成6位数不重复字符串_R语言系列3:高级数据管理

R语言系列3&#xff1a;高级数据管理此文内容为《R语言实战》的笔记&#xff0c;人民邮电出版社出版。从高中电脑课学VB开始&#xff0c;大一课内开始学习C&#xff0c;到后来大二为了数模学习Matlab&#xff0c;到大三为了搞深度学习自学Python&#xff0c;到研究生之初学习St…

ぁ。。。爱。。。ぁ

有一老夫妻年逾50.经济条件不错&#xff0c;理当是安享退休的时候&#xff0c;却一起到律师那要办离婚。原因是自从结婚以来&#xff0c;两人争吵不断&#xff0c;老是意见不合。个性上又南辕北辙十分不和谐。二十多年的婚姻生活&#xff0c;要不是为了孩子着想&#xff0c;早就…

python对象_查找Python对象具有的方法

您似乎可以使用此代码,将“对象”替换为您感兴趣的对象&#xff1a; object_methods [method_name for method_name in dir(object) if callable(getattr(object, method_name))] 我在this site发现它.希望这应该提供更多细节&#xff01; 对于那些获得AttributeErrors的人&am…

fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

使用 CNN 处理图像问题已经是常规操作&#xff0c;但此类方法会造成局部位置信息的损失。如何解决这个问题呢&#xff1f;来自中科院自动化所和北京中医药大学的研究者另辟蹊径&#xff0c;提出用图卷积网络解决语义分割问题。选自arXiv&#xff0c;作者&#xff1a;Yi Lu等&am…

盘点大厂的那些开源项目 - 小米科技

小米是一家以手机、智能硬件和IoT平台为核心的互联网公司&#xff0c;以智能手机、智能电视、笔记本等丰富的产品与服务。致力于让全球每个人都能享受科技带来的美好生活。“为发烧而生”是小米的产品概念。“让每个人都能享受科技的乐趣”是小米公司的愿景。小米公司应用了互联…

python做一个单项选择题系统_(完整版)python选择题word打印版

Python 单选题库 一、 python 语法基础 1 、 Python 3.x 版本的保留字总数是 A.27 B.29 C.33 D.16 2. 语言保留字的是 Python 不是 &#xff0c; 以下选项中 A while B pass C do D except 3. 以下选项中描述错误的是 &#xff0c; 程序格式框架 Python 关于 A Python 语言不采…

博主应邀参加YOCSEF虚拟化技术论坛

发布日期: 2007-11-18 中国计算机学会青年计算机科技论坛<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />CCF Young Computer Scientists & Engineers ForumYOCSEF于<?xml:namespace prefix st1 ns "urn:schema…

python中truncate的用法_在Python中操作文件之truncate()方法的使用教程

truncate()方法截断该文件的大小。如果可选的尺寸参数存在&#xff0c;该文件被截断(最多)的大小。大小默认为当前位置。当前文件位置不改变。注意&#xff0c;如果一个指定的大小超过了文件的当前大小&#xff0c;其结果是依赖于平台。注意&#xff1a;此方法不会在当文件工作…

聊聊如何构建一支自驱团队(二)

曾经有一位大佬分享他组建技术团队的心得&#xff0c;当时我问了他一个问题&#xff1a;请问你组建的团队是项目型组织&#xff0c;还是职能型组织。但是大佬似乎对于这个问题没有特别直接的回答&#xff0c;所以在这篇博客中&#xff0c;我想跟大家讨论一下这个问题。一&#…

自定义依赖注解无效_最详细的自定义Spring Boot Starter开发教程

1.前言随着Spring的日渐臃肿&#xff0c;为了简化配置、开箱即用、快速集成&#xff0c;Spring Boot 横空出世。目前已经成为 Java 目前最火热的框架了。平常我们用Spring Boot开发web应用。Spring mvc 默认使用tomcat servlet容器&#xff0c; 因为Spring mvc组件集成了spring…

问题解答集

目录 问题解答集 1 目录 2 修订历史纪录 3 1 什么是.net 4 1.1 .net的定义 4 1.2 什么是C# 4 1.3 C#与C&#xff0c;C的相同之处 5 2 有关Update程序 6 2.1 WinForm中Button控件的使用 6 2.2 将double类型的变量保留固定位数的小数部分 7 …

thinkpadt450s换键盘视频_ikbc c87 入门级有线机械键盘测评

大家好&#xff0c;我是胖虎。今天&#xff0c;写一写我当初买的第一把机械键盘「ikbc c87 茶轴」&#xff0c;非常好的入门级樱桃轴键盘&#xff0c;手感和键帽都很不错。ikbc c87 茶轴机械键盘小白&#xff0c;第一款入门级机械键盘买什么&#xff1f;这款ikbc c87和高斯 87C…

如何在 ASP.Net Core 中使用 条件中间件

ASP.Net Core 是微软开源的跨平台、可扩展、轻量级的模块化框架&#xff0c;可用于构建高性能的web应用程序。中间件组件可以注入到 ASP.Net Core 请求管道中实现对 Request 和 Response 的定制和修改。ASP.Net Core 中间件可以用于检查、路由或者修改流转于Pipeline的Request和…

solidity payable_以太坊区块链搭建与使用(五)-智能合约Solidity

一、智能合约Solidity开发工具1、remix-ide http://remix.ethereum.org/ 在线版本&#xff0c;也可以去github下载安装到本地。开发、编译、发布、执行、测试2、remix-ide-cn http://remix.hubwiz.com/ 在线中文版本&#xff0c;也可以去github下载安装到本地。支持开发、编译、…