web 安全方面的一些知识,希望各位大虾能补充的更完善!

web 安全方面的一些知识,希望各位大虾能补充的更完善! web 安全方面的一些知识希望各位大虾能补充的更完善7.1 ASP.NET网站安全介绍网站安全是一个直接影响软件成败的因素。一个好的软件对于网站的安全方面十分重要。如果一个软件做出来就被人黑了那么做出来的软件就没有必要了。所以对于软件的安全来说与做软件来说是等同重要。对于软件的安全主要是有操作系统的安全、IIS的安全、数据的安全、编程时需要注意的安全问题。7.1.1操作系统的安全操作系统的安全方面主要可以从以下一个方面来加强操作系统的安全性。第一在第一时间安装微软的补丁程序。第二安装防火墙。第三安装防病毒软件。第四不要在服务器上执行管理功能之外的操作。这几个方面是操作系统安全主要的几个方面。7.1.2IIS的安全IIS的配置直接影响到网站的安全我们发布网站的时候会依靠IIS来发布。下面列出常见的安全设置。有效降低网站安全风险。1将磁盘上的默认web站点位置从C:/inetpub/更改到其他卷以防止攻击者通过输入“…/”作为位置说明轻松访问C驱动器2让IIS以最小的NTFS权限运行。严格限制权限。3卸载最不安全的组件防止与此组件相类似的木马。4禁用TCP/IP上的NetBIOS。NetBIOS是许多安全缺陷的根源。5设置IIS的web内容目录访问权限6保护日志安全。日志是系统安全的重要方面之一。IIS的日志能记录所有用户的请求确保日志的安全能有效提高系统的整体安全性。7将asp.net账户添加到IIS锁定工具创建的本地“web应用程序组”以防进程在被偷袭时运行任何未得到授权的命令行可执行程序。8使用IIS锁定工具IIS Lockdown Tools删除应用程序中未使用的所有其他动态内容类型。以减少攻击者可用来攻击的区域9配置.使其只允许应用程序中使用的扩展集并阻止较长的请求7.1.3数据库的安全对于数据库的安全性应尽可能满足一下的原则1将SQL Server安装在NTFS分区上2安装当时阀不的最新服务包和修补程序3限制所支持的身份验证协议的数量。4给账户设置足够复杂的密码5选择低权限本地账户启动SQL Server服务6使用Services MMC管理单元停止Distributed Transaction CoordinatorMSDTC服务并将其设置为手动启动以防数据库运行事务并且服务器本身也不会运行COM应用程序7禁用应用程序不需要的SQL Server代理 和Microsoft搜索服务8设置Server Network的网络属性由“直接客户端广播”改为“隐藏SQL Server”9如应用程序不使用“命名管道”协议则删除之10限制数据库用户只具有得到的数据库操作权限。7.1.4编程时需要注意都安全问题Web网站是对整个Internet开放的所有人都可以通过Internet访问所以编程时对于每个页面都应注重它的安全问题。主要有以下几个方面需要注意第一窗体身份验证第二输入有效性验证第三使用参数化存储过程第四输出的数据进行HTML编码第五信息加密存储。7.2 ASP.NET安全编程7.2.1什么是跨站点脚本攻击跨站脚本攻击cross-sitescripting简称XSS也叫CSS。它指的是恶意攻击者向web页面中插入恶意html代码。当用户浏览该页时。嵌入其中web里面的html代码会被执行。其攻击损害不仅是web站点而且还对客户端有危害。为了搜集用户信息攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺骗用户详见下文。一旦得手他们可以盗取用户帐户修改用户设置盗取/污染cookie做虚假广告等。每天都有大量的XSS攻击的恶意代码出现。当前的跨站点脚本攻击已经发展到了一个非常妖魔化的地步不再只局限于窃取他人的Cookie。更加恶毒的跨站点脚本攻击会让访问者中恶意插件中木马。一般的跨站点脚本攻击会利用漏洞执行document.write。写入一段javascript让浏览器执行。现在部分站点屏蔽了 document.write或者把用户可能注入的脚本放在一个displaynone的Div中让注入攻击失败。当前又发现了用innerHTML 的方式注入可见Div实现跨站点脚本攻击的方式。7.2.2在ASP.NET编程中防范XSS攻击防止XSS攻击必须对用户所输入的内容进行检查。有很多符号是编写脚本语言所必须的。所以编写代码的时候我们可以用很多种方法过滤掉这些特殊字符。下面介绍几种处理特殊字符的方法。1.用验证控件进行验证。2.通过编写服务器端数据验证组件对数据进行验证。3.利用ValidateRequest对用户数据进行检查7.2.3防止SQL注入攻击SQL注入攻击是很常见的一种攻击类型它利用数据库命令中一些缺点使数据命令含有恶意的代码。这些代码能“欺骗”系统通过用户登录的也就是用一些假的参数进入系统。对于SQL注入防范的常用方法是一、确保用户输入是搭档的类型并遵循预期的模式。二、使用参数化的查询sqlparameter参数化使用存储过程是最好的了。三、使用SQL Server权限来限制各个用户可以对数据库执行的操作。7.2.4Cookie和身份验证Cookie主要是用户帮助开发人员达到一定的目的。它充当了浏览器与服务器之间的一种持续性链接。而Cookie也是常被人盗取使用户失窃个人信息的一个途径。在使用表单身份验证的时候就会隐式使用Cookie。自然也可以不使用Cookie表单身份验证。但这样会使ID嵌入URL中这样更不安全了。Cookie有生命周期的。最长可以设置为50年。但一般我们设置Cookie设置得比较短。因为这样能使Cookie尽量避免被窃取或被人添加恶意数据。7.2.5数据库加密加密可以使数据不被别人查看和修改。即使在不安全的信道上通信也不会被别人查看或修改。这样能使数据更加安全。不仅可以增加数据的保密性而且可以保证数据的完整性。和对数据来源能清楚掌握。一般加密有对称加密、非对称加密、数字签名、哈希。对称加密采用单钥密码系统的加密方法同一个密钥可以同时用作信息的加密和解密这种加密方法称为对称加密也称为单密钥加密。非对称加密采用双钥密码系统的加密方法在一个过程中使用两个密钥一个用于加密另一个用于解密这种加密方法称为非对称加密也称为公钥加密因为其中一个密钥是公开的另一个则需要保密。数字签名通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。此过程还使用哈希函数。哈希将数据从任意长度映射为定长字节序列。哈希在统计上时唯一的;不同的双字节序列哈希后的结果将不同。对于用电脑的各位来说操作系统应该不会陌生吧而操作系统并不是一个没有缺陷的软件对于软件也没有没一个bug的软件。对于做软件的人来说只有尽量减少软件的bug并不能完全消除软件的bug。在用电脑的时候我们经常会遇到电脑发出由微软提示安装系统的补丁的信息。对于软件的补丁是我们的操作系统《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取