asp.net core安全事项(中)

  • 上传文件

上传文件是造成风险的很大因素,所以对上传文件进行处理是重要的,首先要处理的是:a、上传文件大小限制;b、上传文件类型(能过扩展或,或文件头)限制;c、上传的名称要替换掉;d、上传的文件要在专用区域(如果能设置权限最好)最好。

[HttpPost("/files")]
public async Task<IActionResult> Files(List<IFormFile> files)
{//要据上传文件的特征,一定要验证用户上传文件的可信度var size = files.Sum(f => f.Length);foreach (var formFile in files){//扩展名var extension = Path.GetExtension(formFile.FileName);var filePath = $"{Directory.GetCurrentDirectory()}/uploadfiles/{DateTime.Now.ToString("yyyyMMddHHmmss")}{extension}";if (formFile.Length > 0){var extesion = Path.GetExtension(formFile.FileName);var stream = new FileStream(path: filePath, mode: FileMode.Create);await formFile.CopyToAsync(stream);}}return Ok(new { count = files.Count, size });
}
  • sql注入

sql注入的处理很多ORM都 有对应的解决方案,但有些时候,代码检查工具会把一些非注入的场景检测成注入的情况,要尽量sql语句拼接,一定以参数据形式代入,这样不但能避免注入,还能让检测工具通过。

  • 防止跨站点请求伪造

    在asp.net core中的防跨站点伪就是在服务端生成一个字符串,提交到后台时验证这个串是否正确,正确就通过,说明是同一站点,否则为不信任站点提交。

    配置防跨站点伪造配置

        public void ConfigureServices(IServiceCollection services){ #region 5、防止跨站点请请求伪造xsrf/csrf//防止跨站点请请求伪造xsrf/csrf//ajax提交时,需要自定义Head时使用services.AddAntiforgery(options =>{options.FormFieldName = "AntiforgeryGSW";options.HeaderName = "X-CSRF-TOKEN-gsw";options.SuppressXFrameOptionsHeader = false;});//省略n行人码}

在对应的controller上应用防跨站点伪造特性

    [AutoValidateAntiforgeryToken]//不会应用于get,head,options,tracepublic class HomeController : Controller{}

客户商在form表单 用应用

<form action="login" method="post">@Html.AntiForgeryToken()
<form>

在ajax中应用

<script>function add() {$.ajax({type: "POST",contentType: "application/json",headers: {'X-CSRF-TOKEN-gsw': $("[name='AntiforgeryGSW']").val()},url: "/csrf",dataType: 'json',data: JSON.stringify({ "ID": 112, "Name": "李四" }),success: function (data) {console.log(data);},error: function (err) {console.log(err);},complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数 }})}
</script>

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

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

相关文章

http referer 验证防御方法_渗透测试 跨站攻击防御与安全检测手法剖析

上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF&#xff0c;很多客户找到我们想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性更加坚固,对此提醒大家渗透测试网站必须要拿到授权才能测试哦&#xff01;3.…

如何手动连上mysql_如何手动安装MySql

想安装当然要先有一个MySql的安装包 这里使用的是mysql-5.7.12-winx64安装包百度云&#xff1a;http://pan.baidu.com/s/1kVAuXuv       密码&#xff1a;hr391.要将压缩包解压到你的指定位置(最好将要用的工具文件分类放好)例如&#xff1a;D:javaAppmysql-5.7.12-winx6…

WebRTC成为W3C和IETF正式标准

喜欢就关注我们吧&#xff01;2021年1月26日&#xff0c;W3C&#xff08;万维网联盟&#xff09;和 IETF &#xff08;互联网工程任务组&#xff09;同时宣布 WebRTC&#xff08;Web Real-Time Communications&#xff0c;Web 实时通信&#xff09;现发布为正式标准&#xff0c…

mysql非安装_mysql 非安装版的配置

一直以来都是使用wamp中集成的mysql数据库&#xff0c;今天突然想试试下载一个mysql的zip包进行配置。一、下载mysql非安装版下载地址可以到&#xff1a;http://dev.mysql.com/downloads/mysql/ &#xff0c;或者直接点击下载mysql-32bit&#xff1a;http://cdn.mysql.com/Down…

Xamarin.Forms: 无限滚动的ListView(懒加载方式)

说明 在本博客中&#xff0c;学习如何在Xamarin.Forms应用程序中设计一个可扩展的无限滚动的ListView。这个无限滚动函数在默认的Xamarin.Forms不存在&#xff0c;因此我们需要为此添加插件。在这里我们需要知道无限滚动时如何工作的。首先&#xff0c;显示固定的数据。一旦用户…

javaweb应用开发与实践pdf_基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践...

作者&#xff1a;阿里云MVP 刘远程背景『懒猪行』专注于境外自由行S2B业务&#xff0c;涉及分销、终端用户服务、供应链等多个服务环节&#xff0c;随着业务规模的不端增加&#xff0c;我们一直在探索Web应用开发的最佳实践&#xff0c;以加快Web应用的迭代效率&#xff0c;为B…

python大型项目中的日志模块_Python中日志模块的使用

前言程序和脚本往往是无人值守运行的&#xff0c;一旦发生问题&#xff0c;就需要我们去追溯当时的情况来定位问题的原因。这便需要我们在程序和脚本中引入日志的功能。相比于print信息&#xff0c;使用logging日志有以下优点可以记录输出日志的时间、文件、函数以及代码行&…

OSI强调:SSPL并不是开源许可证

喜欢就关注我们吧&#xff01;日前&#xff0c;开放源代码促进会 OSI&#xff08;Open Source Initiative&#xff09;强调&#xff0c;SSPL 并不是一个开源许可证。OSI 表示&#xff0c;SSPL&#xff08;Server Side Public License&#xff09; 是一种典型的 “fauxpen”&…

.NET Remoting

轉自:http://www.iiiedu.org.tw/knowledge/knowledge20030430_2.htm.NET Remoting 資策會數位教育研究所講師 董淑惠     概念簡介 微軟以往使用COM/DCOM的技術來處理分散式系統架構&#xff0c;透過Client端的Proxy代理程式來呼叫遠端Server機器上的物件。.NET Framework則…

通过python实现linux切换用户_Python操作远程服务器切换到root用户

在自动化运维过程中&#xff0c;需要远程服务器切换到root用户下执行命令&#xff0c;尝试了一些方法&#xff0c;得到如下好用的方法&#xff0c;供大家使用&#xff1a; import time import paramiko def verification_ssh(host,username,password,port,root_pwd,cmd): spara…

RabbitMQ 入门:1. Message Broker(消息代理)

Message Broker&#xff08;消息代理&#xff09;维基百科对 Message Broker 的定义是&#xff1a;Message broker是一种中介程序模块&#xff0c;它把消息从发送方的正式消息传递协议转化为接收方的正式消息传递协议。这个定义略繁琐&#xff0c;下面看看 RabbitMQ 官网对 Mes…

什么时候我们应谈及性能?

【导读】实际项目开发中、有部分童鞋可能无时无刻都在关注性能&#xff0c;那么我们到底应该什么时候关注性能呢&#xff1f;个人以为&#xff0c;性能并非一次性就可完全成全&#xff0c;需结合实际业务有一个大致评估或预期&#xff0c;比如数据量大小&#xff0c;若预期短暂…

python编写正则表达式匹配单词_Python正则表达式匹配整个单词

守候你守候我 我认为&#xff0c;通过给出的答案&#xff0c;OP所期望的行为并没有完全实现。具体来说&#xff0c;布尔值的期望输出没有完成。给出的答案做帮助说明这一概念&#xff0c;我认为他们是优秀的。也许我可以说明我的意思&#xff0c;我认为OP使用了下面的例子。给出…

python中可以表示任意大的整数_Python无法表示99999999999999999999这样大的整数。

被邓为“小平和国一部意义义的具有际意称赞法律历史&#xff0c;无法”的性的一个具有杰作创造“是是(。表示。对于的容性要密封求高器&#xff0c;样整数包括性试验的要求中应进行气密各种。无法喷涂金属及工具有设备。吊装台起用多重机设备时&#xff0c;表示为(吊装用的常采…

[转]简单介绍如何用Reporting Service制作报表

1&#xff09; 在安装好Reporting Service后&#xff0c;打开Visual studio .net ,选择新建项目&#xff0c;选择建立商业智能项目&#xff0c;选择新建一个报表项目&#xff0c;命名为reportservice1,再选确定&#xff0c;如下图&#xff1a; 2&#xff09;之后&#xff0c;在…

freertos源码详解与应用开发 pdf_互联网企业面试必问Spring源码?搞定Spring源码,看完这篇就够了...

不用说&#xff0c;Spring已经成为Java后端开发的事实上的行业标准。无数公司选择Spring作为基本开发框架。大多数Java后端程序员在日常工作中也会接触到Spring。因此&#xff0c;如何很好地使用Spring&#xff0c;已成为Java程序员的必修课之一。同时&#xff0c;Spring Boot和…

MS-SQLSERVER--错用了LEN()函数

sqlserver数据导入oracle时发现字符长度不对。。下面是两个函数的区别&#xff1a;DATALENGTH 返回任何表达式所占用的字节数。LEN 返回给定字符串表达式的字符&#xff08;而不是字节&#xff09;个数&#xff0c;其中不包含尾随空格转载于:https://www.cnblogs.com/yooplmqj/…

rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

原文托管在Github: https://github.com/shellhub/blog/issues/52数据结构与算法之线性表-顺序表实现(C语言版本)前言数据结构与算法是一个程序员必备的技能之一,而顺序表更是每个程序员在面试过程中要经常被问到的&#xff0c;如Java语言中的ArrayList类的底层实现就是使用顺序…

hadoop安装详细步骤_推荐一个超详细的Hadoop安装教程,已有32万次阅读

安装Hadoop软件系列&#xff0c;首选Linux系统&#xff0c;比如Ubuntu。如果你的系统是Windows&#xff0c;建议再安装一个Ubuntu&#xff0c;组成双系统&#xff0c;如此可以发挥各自系统的特点。使用U盘制作一个系统&#xff0c;拿出一块分区用作新装的系统&#xff0c;开机启…

后宫佳丽三千,假如古代皇帝也懂负载均衡算法...

古代皇帝&#xff0c;后宫佳丽三千&#xff0c;没法做到雨露均沾&#xff0c;但为了繁衍后代&#xff0c;子嗣繁盛&#xff0c;弱水三千&#xff0c;只取一瓢饮显然是不行的。不同的朝代有不同的宠幸妃子的方法&#xff0c;著名的有羊车望幸、掷筛侍寝、翻牌悬灯等等。如果皇帝…