如何消除网站安全的七大风险

news/2024/5/18 17:50:42/文章来源:https://blog.csdn.net/weixin_30510153/article/details/95204014

以工作中某项目的安全改善过程为例,分享了常用网站安全性的典型问题和解决对策,希望对网站开发者有借鉴意义。

有过网站开发经验的朋友都知道网站安全是构建网站时必须要考虑的一个因素,网站安全的重点在于服务器的安全配置管理以及程序脚本的完善性。值得注意的是,如果服务器的账号和权限由于管理不善而泄露了,即使技术上网站系统再安全,也不可避免会受到攻击。

在 笔者曾经参与过的一个项目中,客户方邀请了专业的第三方安全测试公司进行了安全性的全面检测,同时也针对性地进行了安全性的改善,特别是在应用程序方面。 此文将分享改善过程中的几个典型问题的分析和解决对策,包括SQL注入攻击、跨站点脚本攻击、验证码绕过等,希望能够为大家在改善网站安全方面的工作提供 参考,并采取相应的防范措施。


项目背景

该项目使用的技术和平台:

OS:Windows 2008 Server, Enterprise Edition 64-bit

Database:Microsoft SQL 2005 Server, Standard Edition

WebServer:IIS7.0

开发平台:.NET Framework 2.0

考虑到网站安全的跨平台和通用性,文中讨论时仅提供对应策略不使用实际代码,这里所有的项目网站用到的域名统一用example.com代替。


改善之前

第三方专业安全测试公司进行测试,其中的重点问题列表如下:

未标题-2

问题1:易受到SQL注入攻击

风险 攻击者可以通过应用程序发送数据库命令,这些命令将被服务器执行。这可以用来对数据库进行完全控制。这些SQL注入漏洞可以通过在其中一个区域插入“and 7 = 7 -”或“and 8 = 9 -”,并比较结果进行判断。

分析 SQL 注入攻击是由于服务器对参数检查不够,而导致攻击者借此获得敏感信息。因此,需要使用参数化查询以确保攻击者无法操作数据库的SQL查询语句。例如,如果 应用程序要求输入名称,那它应该只接受字母字符、空格和撇号,而不接受任何其他字符。也就是说,在应用程序中的所有输入域实施服务器端白名单技术。特别是 所有用于SQL语句的输入域,需要空格的都应该用引号括起来。

改善 在程序中所有可接受外部参数的地方进行逐一识别,以过滤危险字符。如在全局函数中定义“禁止字符串列表”,该表中列出所要过滤出的SQL攻击代码可能包含的字符串。

and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare |<|>|’|(|)|{|}

//当然可以根据网站的特点完善和修改本列表

接下来做如下处理:

未标题-1

 

 

问题2:易受到跨站点脚本攻击

风险 此漏洞可以被用来获取身份验证Cookie,攻击管理员账户,或使应用程序的用户攻击其他服务器和系统。该漏洞可以通过在某区域中插入“<script>alert(‘23389950’);</script>”来判断。

分析 这也需要在本网站的所有输入域实施服务器端白名单技术。如果需要特殊字符,应该转换为更安全的形式。如适用于各种语言的HTML转码:

  • &应转换为 &;
  • “应转换为”;
  • ‘应转换为&39;
  • >应转换为>;
  • <应转换为<。

改善 除 了这些标准的HTML转码之外,对于可疑字符串也要进行强化检查和转化,并进一步执行以下操作:(1)对各页面的输入参数进行强化检查;(2)对原来只在 客户端判断的参数,在服务器端进一步强化检查;(3)最终提供了全局的转码和过滤的函数。当然这需要在性能和扩展性以及安全性方面的平衡综合考虑。

问题3:非安全的CrossDomain.XML文件

风险 为 解决Flash/Flex系统中的跨域问题,提出了crossdomain.xml跨域策略文件。虽然可以解决跨域问题,但是也带来了恶意攻击的风险,如 果该策略文件里允许访问任何域,就可能允许发起对网络服务器的跨站点请求伪造和跨站点脚本攻击。比如,不安全Flash应用程序可能会访问本地数据和用户 保存的网页记录,甚至传播病毒和恶意代码。

分析 考虑如何确保只对提供安全资源的可信域开放允许。

改善 经过调查,发现在程序目录下的crossdomain.xml文件里的配置如下:

<?xml version=”1.0″?>

<!DOCTYPE cross-domain-policy SYSTEM ”http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”>

<cross-domain-policy>

<allow-access-from domain=”*” />

</cross-domain-policy>

文件中的allow-access-from 实体设置为星号设置为允许任何域访问,将其修改为 <allow-access-from domain=”*.example.com” />,表示只允许本域访问,该问题就解决了。

问题4:Flash参数AllowScript-Access 已设置为always

风险 当AllowScriptAccess为always时,表明嵌入的第三方Flash文件可以执行代码。攻击者此时就可以利用该缺陷嵌入任意第三方Flash文件而执行恶意
代码。

分析 AllowScriptAccess 参数可以是“always”、”sameDomain”或“never”。三个可选值中,“always” 表示Flash文件可以与其嵌入到 的 HTML 页进行通信,即使该Flash文件来自不同于HTML页的域也可以。当参数为“sameDomain”时,仅当Flash文件与其嵌入到的 HTML页来自相同的域时,该Flash文件才能与该HTML页进行通信,此值是AllowScriptAccess 的默认值。而当 AllowScriptAccess为 “never”时,Flash文件将无法与任何HTML页进行通信。

因此需要将AllowScriptAccess参数设置为“sameDomain”,可以防止一个域中的Flash文件访问另一个域的 HTML 页内的脚本。

改善

<param

name=”allowScriptAccess” value=”always” />

改为

<param

name=”allowScriptAccess” value=“sameDomain” />

 

问题5:网站后台管理通过不安全链接实施

风险 管理访问没有强制实施SSL,这可能允许攻击者监视并修改用户和服务器之间的发送的包括账户凭据在内的所有数据。如果攻击者通过代理或者路由软件拦截服务器和管理员间的通信,敏感数据可能被截获,进而管理员账户可能会受到危害。

分析 管理访问没有强制实施SSL,为防止数据拦截,管理访问应该强制执行HTTPS (SSL3.0)。

改善 运维对服务器进行了配置调整,单独配置支持了SSL3.0访问管理后台。

问题6:验证环节可以被绕过

风险 用户发布信息时,虽然有页面的验证码防止自动恶意发布,但仍可能被绕过进行自动提交。绕过的方式之一是使用过滤和识别软件,之二是可以利用Cookie或Session信息绕过验证码。

分析 图像失真机制本身不是特别强,可以很容易地使用公开的过滤和识别软件来识别。生成的图片也是可以预测的,因为使用的字符集很简单(只是数字),建议实现一个更强大的验证码系统。

Cookie或session信息处理有漏洞导致验证码被绕过, 确保每一个链接只能取得唯一的验证码,并确保每个请求产生并需要一个新的验证码。

改善 根据需要增加验证码的复杂度,而不只是单数字。

经过分析发现是因为验证码被存入了Session里,而开发人员忘记在提交之后清空Session中的验证码的值,导致验证码在过期时间内一直可用,从而可能被利用多次提交。因此在提交后追加了及时清空验证码的操作。

问题7:泄露敏感信息

风险 此信息只能用于协助利用其他漏洞,并不能直接用来破坏应用程序。网站的robots.txt文件里可以获得敏感目录的信息,这可能允许攻击者获得有关应用程序内部的其他信息,这些信息可能被用来攻击其他漏洞。

分析 robots.txt不应在提供管理界面的信息。如果robots.txt文件暴露了Web站点结构,则需要将敏感内容移至隔离位置,以避免搜索引擎机器人搜索到此内容。

改善 当 然robots.txt要根据SEO的要求来处理,但也要同样注意安全性。如:disallow:/testadmin/,其中testadmin为管理 后台,就被暴露了。可以根据实际情况是否必要决定删除robots.txt文件或者把敏感目录单独配置禁止搜索引擎搜索。

其他问题汇总

除此以外,还有很多其他危害性相对较低的问题,分析如下。

问题:可能通过登录页面枚举出用户名,因为根据账户是否存在的错误信息是不同的。

对策:修改错误信息使之不带有提示性,如“您输入的邮箱或密码不对!” 并且超过一定次数则对该IP进行锁定。

问题:检测到可能泄露敏感信息或被恶意利用的冗余文件,如测试文件、bak文件、临时文件。

对策:除去服务器中的相应文件。

问题:发现潜在机密信息,如名为order的文件很容易被联想到用户订单。

对策:避免在文件名中含有完整的敏感词汇或不要在容易猜测到的文件中保存敏感信息,或者限制对它们的访问。

问题:发现内部信息泄露。

对策:除去代码中漏删的内部IP地址,内部组织,人员相关信息等。


 

共性原因分析

在 发现的问题中,71%是与应用程序相关的安全性问题。可以修改应用程序相关的安全性问题,因为它们是由应用程序代码中的缺陷造成的。29%是基础结构和平 台安全性问题,可以由系统或网络管理员来修订“基础结构和平台安全性问题”,因为这些安全性问题是由第三方产品中的错误配置或缺陷造成的。

综合主要的原因包括但不限于以下三个方面。

程序方面

  • 未对用户输入正确执行危险字符清理;
  • Cookie和Session使用时安全性考虑不足;
  • HTML注释中或Hidden form包含敏感信息;
  • 提供给用户的错误信息包含敏感信息;
  • 程序员在 Web 页面上的调试信息等没有及时删除。
  • Web 应用程序编程或配置不安全;

配置方面

  • 在Web目录中留下的冗余文件没有及时清理;
  • Web服务器或应用程序服务器是以不安全的方式配置的。
  • 安全规范文档不够完善,开发人员的培训不足;
  • 开发人员的安全相关经验和安全意识不足。

 

对于这些问题的解决方法-——技术之外

对于安全问题本身的解决可能只能case by case ,但为了预防更多潜在问题的引入,技术之外方面的改善也不容忽视:

1. 对于开发人员在项目初期即进行安全开发的培训,强化安全意识。

2. 建立用于共享安全经验的平台,将经验形成Checklist作为安全指南文档。

3. 将成熟的代码成果提炼出公共安全模块以备后用。

本次改善之后总结出一些常用基本安全原则供大家参考,见“非官方不完整网站开发安全原则”。


晁晓娟 作者简介:晁晓娟,目前在互联网公司负责项目管理。InfoQ中文站SOA社区编辑,有多年的Web开发管理经验,关注项目管理、架构和产品。

转载于:https://www.cnblogs.com/y0umer/archive/2010/05/23/3839422.html

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

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

相关文章

浙江巨丰管业有限公司网站

祝贺浙江巨丰管业网站正式运行2周年&#xff0c; 浙江巨丰管业有限公司&#xff08;以下简称公司&#xff09;成立于2001年&#xff0c;坐落于美丽的西施故里-浙江诸暨-店口工业区&#xff0c;公司距离杭州机场20公里&#xff0c;杭金衢高速公路20公里&#xff0c;沪杭甬高速公…

分享9个最棒的代码片段资源网站

作为一个奋斗在第一线的码农来说&#xff0c;能找到自己能在项目中直接使用的代码无疑是一件天大的喜事。代码片段和代码库到处都有&#xff0c;如何找到自己需要的东西绝对是一个大问题&#xff0c;为了帮助大家更好的找到自己需要的代码&#xff0c;今天我们介绍9个非常不错的…

IIS网站服务器性能优化指南

Windows Server自带的互联网信息服务器&#xff08;Internet Information Server&#xff0c;IIS&#xff09;是架设网站服务器的常用工具&#xff0c;它是一个既简单而又麻烦的东西&#xff0c;新手都可以使用IIS架设一个像模像样的Web站点来&#xff0c;但配置、优化IIS的性能…

Android利用Jsoup解析html 开发网站客户端小记。

这些天业余时间比较多&#xff0c;闲来无事&#xff0c;想起了以前看过开发任意网站客户端的一篇文章&#xff0c;就是利用jsoup解析网站网页&#xff0c;通过标签获取想要的内容。好了废话不多说&#xff0c;用到的工具为 jsoup-1.7.2.jar包&#xff0c;具体jsoup的相关文档&a…

网站架构之架构演化

网站从构建之初的很少有人问津&#xff0c;用户数量较少&#xff0c;并发量较低&#xff0c;到之后的拥有千万上亿用户&#xff0c;数万量级的高并发&#xff0c;之间经历了怎样的过程&#xff0c;小型网站架构是怎样逐步演化的&#xff0c;本文简单探讨下这方面的内容&#xf…

产品推广系统推荐乐云seo_优化推广公司红利产品推荐“爱采购cpc竞价版”

很多优化推广公司都在寻找更好的产品&#xff0c;服务&#xff0c;项目来满足更多客户的需求以及市场认可度&#xff0c;竞争力。有人可能代理过整站优化的产品&#xff0c;有人可能代理过快速排名的产品&#xff0c;有人可能代理过万词霸屏类产品&#xff0c;等等。这些产品都…

网站框构分析 一

Facebook用户量大的问题由它的分布式缓存系统主要解决&#xff0c;剩下的自然是开源的mysql更合适了 &amp;lt;img src"https://pic2.zhimg.com/c6d403f1e89fa46c5567e0cbcbb024ad_b.jpg" data-rawwidth"1310" data-rawheight"333" class&quo…

使用python来批量抓取网站图片

今天"无意"看美女无意溜达到一个网站&#xff0c;发现妹子多多&#xff0c;但是可恨一个page只显示一张或两张图片&#xff0c;家里WiFi也难用&#xff0c;于是发挥"程序猿"的本色&#xff0c;写个小脚本&#xff0c;把图片扒下来再看&#xff0c;类似功能…

发布在IIS的网站,可以用本机IP登录访问,用localhost不可登录访问

之前在IIS发布一个测试的网址&#xff0c;但是用本机IP可以访问&#xff0c;用localhost不可访问 报访问主机名无效的问题&#xff0c;用本机IP访问成功 最后解决方法是&#xff1a; 1&#xff09;打开IIS&#xff0c;找到发布后的网站 2&#xff09;选中网站&#xff0c;右键属…

【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】

最近做项目遇到了一个说小不小&#xff0c;说大不大的问题&#xff0c;那就是在WebBrowser中清空网站上用户的登陆状态&#xff0c; 一开始心想&#xff0c;那不就清空cookies就行啦&#xff0c;那么简单的事情&#xff0c;百度一下 …… …… 是的&#xff0c;正如你们所百度的…

部分网站公开数据的汇总(2)

数据整理 1、Natural Earth Data Natural Earth Data提供了全球范围内的矢量和影像数据。Natural Earth Data的最大优势就是数据是开放性的&#xff0c;用户有传播和修改数据的权限。 &#xff08;1&#xff09;Natural Earth为制作个性化地图提供方便的资源&#xff0c;而不是…

服务器会自动创建cookie,网站的cookie机制是什么

cookie与session应用于互联网中的一项基本技术——会话(用户与客户端的交互)跟踪技术&#xff0c;用来跟踪用户的整个会话。简单来说&#xff0c;cookie是通过在客户端记录信息确定用户身份的&#xff0c;而session则通过在服务器端记录信息确定用户身份。cookie定义cookie是服…

Httpster –世界各地最潮的网页设计案例聚合网站

Httpster 这个网站聚合了世界各地最新最潮的网页设计案例&#xff0c;展示了创意的设计&#xff0c;精心的策划&#xff0c;优秀的排版。这些作品都按月份和类别进行了很好划分&#xff0c;你可以方便的找到自己感兴趣的网站案例。 立即去看看 您可能感兴趣的相关文章网站开发中…

使用宝塔面板进行wordpress建站

首先你需要自行购买服务器和域名我这里购买的是阿里云的服务器和域名 然后在xshell中对你的服务器进行操作 将自己写的web项目部署到服务器中的方法参考我的上一篇博客 Linux虚拟机或阿里云部署本地Javaweb项目 将宝塔面板的安装命令复制到xshell中在服务器上通过yum安装宝塔面…

网站底部套用模板

写网站时一般都会加上网站底部&#xff0c;使得网站结构更加完整 这里提供一个常用的网站底部形式作为模板&#xff0c;方便套用 修改示例&#xff1a; 相关代码&#xff0c;请到此处下载 网站底部常用模板

反击“猫眼电影”网站的反爬虫策略

001 前言 前两天在百家号上看到一篇名为《反击爬虫&#xff0c;前端工程师的脑洞可以有多大&#xff1f;》的文章&#xff0c;文章从多方面结合实际情况列举了包括猫眼电影、美团、去哪儿等大型电商网站的反爬虫机制。的确&#xff0c;如文章所说&#xff0c;对于一张网页&…

如何搭建个人博客网站

搭建博客流程较复杂&#xff0c;细节比较多&#xff0c;需要记录一下。 一. 在阿里云购买域名 每个网站都需要一个域名&#xff0c;或者通俗地说&#xff0c;网站需要一个网址。就像百度的域名是www.baidu.com&#xff0c;其它人可以通过在浏览器中输入域名来访问这个网站。域…

页面怎么把关键字保留下来_怎么做seo优化,以及网站SEO优化计划!

在工作或寻找工作的过程中。我相信面试官经常会要求你做一个seo优化计划。那你怎么做seo优化&#xff1f;一个好的SEO优化计划包括四个主要组&#xff1a;首先&#xff0c;前端/页面编辑器二&#xff0c;内容修改人员三&#xff0c;推广人员四&#xff0c;数据分析师SEO推广的组…

部分网站为什么上不去_企业网站如何霸占搜索引擎首页

很多人都知道&#xff0c;企业搭建好官网后需要有流量&#xff0c;有人关注&#xff0c;才能够算得上是搭建官网的意义。不然&#xff0c;搭建官网只能够说做了个动作&#xff0c;毫无意义。官网要有流量&#xff0c;就需要去做网站推广&#xff0c;网站推广其实也就是在做seo官…

PCB封装下载网站推荐及其详细使用方法

摘要本文汇总了当下比较流行的几个原理图符号&#xff0c;PCB封装与对应的3D模型下载网站&#xff0c;网站均支持多种流行的EDA软件&#xff0c;如AD, Cadence, PADS等。 因为我使用的是Cadence&#xff0c;版本是16.6和17.4&#xff0c;对应的原理图工具是Orcad&#xff0c;P…