什么是网络安全

1) 什么是网络安全

作为程序员,主要是面向产品的安全的问题。比如sql注入,xss,csrf,cookie窃取等等,都值得我们去思考。保证网站运行正常,客户数据安全。

2) sql注入

简单的说,就是利用表单提交数据和URL传参,来控制数据库,进行一些非法操作,比如,查询到不该知道的数据,破坏数据库的结构等等。如果网站存在SQL注入的漏洞,那么一定是可以用表单和URL参数,构造非法的SQL命令,从而操作数据库。

新建项目,新建SqlSecurityController控制器,新建两个index action一个用于httpget,一个用于httppost,在action头部使用特性。

 

这里使用了ado.net的方式查询数据库,name和password参数把页面提交的用户名和密码组成一条sql语句,查询完后把DataSet数据传到View。

 

View页面,当(ViewBag.data).Tables[0].Rows.Count有数据时,显示登陆成功。下面是提交form表单,用于提交用户名和密码登陆。

 

运行程序,地址栏输入/SqlSecurity/Index。输入正确的用户名和密码,登陆。

 

登陆成功。

 

再次打开/SqlSecurity/Index页面,用户名输入'or 1 = 1--,密码不填,登陆。

 

此时数据库执行的sql指令变成了

select * from usertable where name = ''or 1 = 1--' and password = ''

--在sql语句中是注释的意思。成功执行了语句,返回了usertable 表中的数据。

 

这就是sql注入,此隐患可让不法者查询到不该看的数据,删除数据,操作数据库。

解决方法也是有很多,这里使用sql参数化的方法,修改代码为两个字符串占位,后面通过new SqlParameter()为两个参数赋指。

运行程序,地址栏输入/SqlSecurity/Index。在用户名处输入'or 1 = 1--,登陆。提示失败。

 

用正确的用户名和密码登陆,登陆成功。

 

3) XSS攻击

XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。

新建SqlSecurityController控制器,新建两个index action一个用于httpget,一个用于httppost,在action头部使用特性。这里也用道了ado.net的方式来对数据库进行操作。

 

httpget特性的index action把查询出来的数据显示在view界面。

 

httpost特性的index action把输入的数据添加到数据库,然后跳转到index action查询数据。

 

新建Index view,用于展示和输入数据,@Html.Raw()返回的是没有编码的 HTML 标记。

 

运行程序,地址栏输入/XssAttack/Index。看到了两条数据和两个输入框。

 

在用户名处输入<a herf='www.baidu.com'>aaaa</a>,密码输入555。登陆。

保存到数据库后再次进入页面时,查询出3条数据。

提交用户名的时候是一个a标签链接,现在完全显示出来了。

又比如输入<script src="/Scripts/JavaScript.js"></script>加载非法脚本提交,当用户打开页面时就会执行脚本。

 

非法提交的跨站脚本信息显然是不被允许的。不过Razor语法帮我们做了很多。在index view视图中去掉@Html.Raw(),再次打开/XssAttack/Index。输入的标签被编码了。

 

或者用

@Html.AttributeEncode() @Html.Encode()来执行编码。最好还是在提交输入框内容时验证一下,当出现非法字符串时,出现提乱码。

 

4)CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

攻击通过在授权用户访问的页面中包含链接或者脚本的方式工作。例如:一个网站用户Bob可能正在浏览聊天论坛,而同时另一个用户Alice也在此论坛中,并且后者刚刚发布了一个具有Bob银行链接的图片消息。设想一下,Alice编写了一个在Bob的银行站点上进行取款的form提交的链接,并将此链接作为图片src。如果Bob的银行在cookie中保存他的授权信息,并且此cookie没有过期,那么当Bob的浏览器尝试装载图片时将提交这个取款form和他的cookie,这样在没经Bob同意的情况下便授权了这次事务。

新建提交方式为POST Edit Action,负责修改用户信息。

 

这里我们只会让有权限的角色执行这个action,但当有权限的角色登陆后cookie信息存在,攻击者就可以骗取用户点击某个链接或者图片,该网站或图片转到Edit Action,修改了不该修改的数据等。

被骗取到的攻击网页。打开便会向服务器Edit Action提交修改信息。

运行程序,地址栏输入/XssAttack/Index。假如此处以被XSS攻击,注入了“致富发财的方法”这个链接,用户点击进去,就执行了攻击者的攻击页面。

 

执行一闪而过,回到index页面。id为31的数据被修改了。产生严重的后果。

 

CSRF防御

新建提交方式为get的Edit ation,在view页面的form提交标签内输入@Html.AntiForgeryToken()。

同时在提交到的Post Edit action添加特性[ValidateAntiForgeryToken]

 

修改id为31的数据为正常数据,运行程序,地址栏输入/XssAttack/Index。

 

当用户无意点击攻击链接时。便会报错。导致攻击失败。

 

而用/XssAttack/Edit正常修改,则成功。

 

防御攻击的原理和验证码类似,也可用验证码方式做到。

 

还有一种办法就是获取上一个页面,比如是从那一个页面跳转过来的,如果Request.UrlReferrer为null或者不是本站点下的网站,则可判断为CSRF攻击。

被攻击时为null。

 

正常提交数据时,可判断是否为本域名提交。

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

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

相关文章

2025年软件测试五大趋势:AI、API安全、云测试等前沿实践

随着软件开发的不断进步&#xff0c;测试方法也在演变。企业需要紧跟新兴趋势&#xff0c;以提升软件质量、提高测试效率&#xff0c;并确保安全性&#xff0c;在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…

等级保护2.0|网络安全服务

等级保护2.0|网络安全服务 定义 对于国家秘密信息、法人和其他组织及公民专有信息以及公开信息的存储、传输、处理这些信息系统分等级实行安全保护&#xff0c;对信息系统中发生的信息安全时间分等级响应、处置。 思想 对信息安全实行等级化保护和等级化管理 目标 突出重…

Spatial Branching for Conic Non-Convexities in Optimal Electricity-Gas Flow

摘要—本文提出了一种基于几何的空间分支策略&#xff08; spatial branching strategy&#xff09;&#xff0c;用于解决集成电力-燃气系统中的圆锥非凸方程&#xff08; conic non-convex equations&#xff09;。所提出的策略嵌入在空间分支定界算法中&#xff0c;以求解最优…

ChunkKV:优化 KV 缓存压缩,让 LLM 长文本推理更高效

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

IDEA编写SpringBoot项目时使用Lombok报错“找不到符号”的原因和解决

目录 概述|背景 报错解析 解决方法 IDEA配置解决 Pom配置插件解决 概述|背景 报错发生背景&#xff1a;在SpringBoot项目中引入Lombok依赖并使用后出现"找不到符号"的问题。 本文讨论在上述背景下发生的报错原因和解决办法&#xff0c;如果仅为了解决BUG不论原…

【Redis】redis 存储的列表如何分页和检索

博主介绍&#xff1a;✌全网粉丝22W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

基于SpringBoot的线上历史馆藏管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Redis持久化机制详解

为什么需要持久化 Redis通常被作为缓存使用&#xff0c;但是Redis一旦宕机&#xff0c;内存中的数据全部丢失&#xff0c;可能会导致数据库崩溃。如果是从数据库中恢复这些数据就会存在频繁访问数据库和读取速度慢的问题。所以redis实现数据的持久化&#xff0c;是至关重要的。…

代码随想录算法训练营day38

代码随想录算法训练营 —day38 文章目录 代码随想录算法训练营前言一、322. 零钱兑换二维dp数组 二、279.完全平方数二维dp数组 三、139. 单词拆分多重背包背包问题总结问题类型递推公式遍历顺序 前言 今天是算法营的第38天&#xff0c;希望自己能够坚持下来&#xff01; 今日…

数据库高安全—审计追踪:传统审计统一审计

书接上文数据库高安全—角色权限&#xff1a;权限管理&权限检查&#xff0c;从权限管理和权限检查方面解读了高斯数据库的角色权限&#xff0c;本篇将从传统审计和统一审计两方面对高斯数据库的审计追踪技术进行解读。 4 审计追踪 4.1 传统审计 审计内容的记录方式通…

【C++篇】 异常处理

目录 1&#xff0c;异常的概念及使用 1.1&#xff0c;异常的概念 1.2&#xff0c;异常的抛出和捕获 1.3&#xff0c;栈展开 1.4&#xff0c;异常的重新抛出 1.5&#xff0c;异常安全问题 1.6&#xff0c;异常规范 2&#xff0c;标准库中的异常 小结&#xff1a; 1&…

QT修仙之路1-1--遇见QT

文章目录 遇见QT二、QT概述2.1 定义与功能2.2 跨平台特性2.3 优点汇总 三、软件安装四、QT工具介绍(重要)4.1 Assistant4.2 Designer4.3 uic.exe4.4 moc.exe4.5 rcc.exe4.6 qmake4.7 QTcreater 五、QT工程项目解析(作业)5.1 配置文件&#xff08;.pro&#xff09;5.2 头文件&am…

python实现情绪识别模块,并将模块封装成可执行文件

目录&#xff1a; 1.源码&#xff1a;2.情绪识别模型运行流程&#xff1a;3.模型封装需要注意的地方&#xff1a;4.未解决问题&#xff1a; 1.源码&#xff1a; https://gitcode.com/xyint/deep_learning.git 2.情绪识别模型运行流程&#xff1a; 需要获取用户摄像头权限&…

网络防御高级02-综合实验

web页面&#xff1a; [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一&#xff0c;接口配置&#xff1a; SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…

Arbess基础教程-创建流水线

Arbess(谐音阿尔卑斯) 是一款开源免费的 CI/CD 工具&#xff0c;本文将介绍如何使用 Arbess 配置你的第一条流水线&#xff0c;以快速入门上手。 1. 创建流水线 根据不同需求来创建不同的流水线。 1.1 配置基本信息 配置流水线的基本信息&#xff0c;如分组&#xff0c;环境&…

MySQL下载过程

MySQL Enterprise Edition Downloads | Oracle mysql官方下载网址&#xff08;9.2版本&#xff09; 下面的示例是5.7的包&#xff0c;过程是一样的 port&#xff1a;3308&#xff08;默认的是3306&#xff0c;笔者下了一个占用了该端口&#xff09; root&#xff1a;123456 问题…

StochSync:可在任意空间中生成360°全景图和3D网格纹理

StochSync方法可以用于在任意空间中生成图像&#xff0c;尤其是360全景图和3D网格纹理。该方法利用了预训练的图像扩散模型&#xff0c;以实现零-shot生成&#xff0c;消除了对新数据收集和单独训练生成模型的需求。StochSync 结合了 Diffusion Synchronization&#xff08;DS&…

Windows逆向工程入门之汇编环境搭建

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 Visual Studio逆向工程配置 基础环境搭建 Visual Studio 官方下载地址安装配置选项(后期可随时通过VS调整) 使用C的桌面开发 拓展可选选项 MASM汇编框架 配置MASM汇编项目 创建新项目 选择空…

【多模态大模型】系列1:CLIP【多模态领域开山之作】

目录 1 模型结构2 伪代码3 Loss计算方法 官方网站&#xff1a;https://openai.com/index/clip/ 论文&#xff1a;Learning Transferable Visual Models From Natural Language Supervision GitHub&#xff1a;https://github.com/openai/CLIP Colab&#xff1a;https://colab.r…

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现 目录 SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来&#xff08;优…