• 隐藏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一定要有过期(或服务端维护状态让其实效)。这样可以有效防止授权信息被别人再利用。

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

(未完待续)

asp.net core安全事项(上)相关推荐

  1. ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)

    早就听说ASP.NET Core 3.0中引入了gRPC的服务模板,正好趁着家里电脑刚做了新系统,然后装了VS2019的功夫来体验一把.同时记录体验的过程.如果你也想按照本文的步骤体验的话,那你得先安 ...

  2. 在ASP.NET Core Web API上使用Swagger提供API文档

    我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...

  3. wsl 上使用docker_首先通过在WSL和Docker中进行测试,将ASP.NET Core从Windows上的Azure应用服务迁移到Linux

    wsl 上使用docker I updated one of my websites from ASP.NET Core 2.2 to the latest LTS (Long Term Suppor ...

  4. Vue + Element+ ASP.NET Core WebAPI 文件上传下载

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备asp.net后端文件上传的API Uplo ...

  5. Asp Net Core普通图片上传

    文件上传 一.控制器 二.Model 1.类 2.视图 总结 一.控制器 [HttpPost]public IActionResult Edit(StudentEditViewModel model) ...

  6. core控制器属性注入的用处_asp.net-core – 如何使用Autofac和ASP.NET Core在控制器上启用属性注入?...

    是的,为具有autofac的控制器设置属性注入有点棘手;)但这是它的工作原理. 使用ASP.NET Core(2.1),您首先需要在Startup.cs中将控制器注册为服务: services.Add ...

  7. asp.net core安全事项(下)

    越权 越权是非常严重的安全漏洞,通常状态是开发人员对请求的限制逻辑不严格导致的. 如果系统中有角色的概念,越权可能出现不同角色间的越权和同角色间的越权. 相同角色: A用户,B用户是相同的角色. A用 ...

  8. ASP.NET Core在MacOS上建立HTTPS开发证书

    安装 安装 dotnet dev-certs https -trust 移除 sudo dotnet dev-certs https --clean 安装前 安装后

  9. vue+element-ui+asp.net core 实现文件上传和下载

    原文连接 个人心得: 1.前端需要发送http请求到后端 2.后端用接受到请求之后,返回一个FileContentResult类型,提醒浏览器下载

最新文章

  1. OpenCV 【十六】RNG随机数发生器putText绘制文字
  2. img 标签 访问图片 返回403 forbidden问题
  3. 高级工程师必须精通的七种武器(摘录)
  4. Linux 卸载分区(会格式化分区数据)
  5. matlab相关论文,matlab
  6. 2.6.2.MySQL主从复制的原理
  7. 1进程 ppid_杀死僵尸进程,你需要这些神奇的Linux命令行
  8. python安装后无法使用_Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)...
  9. Java之品优购课程讲义_day20(2)
  10. java 判断object类型_Java多态的6大特性|乐字节
  11. 小程序-demo:快速开始
  12. 【C++】set和multiset区别
  13. putty以及psftp的基本操作,使用方法等
  14. 惩罚函数将有约束优化转化为无约束优化问题
  15. 华为鸿蒙系统支持什么手机_华为鸿蒙系统支持的手机型号_鸿蒙系统支持华为哪几款手机...
  16. 半小时体验云原生:手把手教你在k8s上部署springboot应用——干货分享,建议收藏
  17. 0004-环保公益环保宣传PPT模板免费下载
  18. Java控制台游戏~600行代码实现打怪小游戏
  19. java定时任务原理,东软集团java面试题
  20. Linux userdel 和 deluser 的区别

热门文章

  1. css超出隐藏显示省略号
  2. nj08---process、console
  3. 【Zookeeper】源码分析之服务器(一)
  4. thinkphp中表有前缀名的时候申明模板的方法
  5. 用POP动画引擎实现弹簧动画(POPSpringAnimation)
  6. 创业95%失败不是因项目本身
  7. 为您的Blogger博客设计一个美丽的新主题
  8. 火狐打印预览_将打印和打印预览命令添加到Firefox的上下文菜单
  9. 原生js打印指定节点元素
  10. JavaScript-client、offset、scroll、定时器