asp.net core安全事项(中)
2022/2/3 14:43:13
本文主要是介绍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,trace public 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>
想要更快更方便的了解相关知识,可以关注微信公众号
这篇关于asp.net core安全事项(中)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#