解决方案

当前位置:首页 >> 解决方案 >> 政府网站建设,政府网站安全开发探讨

政府网站建设,政府网站安全开发探讨

发布:2020-07-08

2017年6月8号国务院办公厅印发《政府网站发展指引》(以下简称《指引》),对全国政府网站的建设发展作出明确规范,同时对于政府网站的安全提出了更高的要求。《指引》强调,要根据网络安全法等要求,落实网络安全等级保护制度,建立安全监测预警和应急响应机制,对攻击、侵入和破坏政府网站的行为以及影响政府网站正常运行的意外事故进行防范,确保网站稳定、可靠、安全运行。

输入验证

为什么输入验证如此重要?第一个原因非常明显:用户都不希望使用虚假的数据。应用程序会处理这些数据,得出结果并最终存储到后台数据库中。网络上的其他应用程序有可能在某种情况下需要这些数据,这些程序可能依赖于数据的正确性。如果这些数据没有经过验证,就有可能会带来麻烦。

输出编码

输出编码是转换输入数据为输出格式的过程,输出格式不包含或只是有选择性的包含允许的特殊字符。输出编码能有效地防止HTML注入(跨站脚本XSS攻击)等,也能确保输出内容的完整性和正确性。对于支持HTML代码的输出,输出前要确保代码中不含有跨站攻击脚本才能输出。通过编写过滤函数,进行强制过滤。

防止SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。具体而言,SQL注入可分为五大类,分别是:数字型注入、字符型注入、搜索型注入(like)、in型的注入、句语连接型注入。从应用来说,要特别注意IP、搜索、批量删除等地方的SQL注入。

跨站脚本攻击

跨站脚本攻击(通常简写为XSS)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。入侵者通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。如这句简单的Java脚本就能轻易获取用户信息:alert(document.cookie),它会弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍做分析便获取了用户的敏感信息。

跨站脚本攻击非常危险,有效防止跨站脚本攻击,是WEB程序是否安全的一个重要标准。

跨站请求伪造

CSRF(Cross-site request forgery)跨站请求伪造,也被称成为“one click attack”或“session riding”,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

不要低估了CSRF危害性和攻击能力!可以说,跨站请求伪造是跨站脚本攻击的一种深入利用,它的危害性更大。如:给自己提升权限、增加管理员等。

越权操作

越权操作是指对系统进行超越自己权限的操作。每种会员用户都有特定的权限,如果操作越出了自己权限范围,就是越权操作。对于涉及到用户和管理员的操作,首先必须检查操作的合法性。对于合法的操作,还需要检查操作的数据是否是属于操作者本人。特别对会员的自身操作,如删除自己的文章等操作,要检查数据是否属于操作者本人,是否有权限执行操作。操作时对身份的验证一定要引用系统服务端的,不要用用户可修改的数据进行验证。如:隐藏的TextBox、Label、Cookie等。

IO操作安全

对上传文件的实际类型进行检查,并删除黑名单中列出类型的文件。上传采用白名单验证,确保上传文件类型的正确性,并防止上传可执行文件,对系统造成危害。如:asp、aspx、php等木马程序。所有的IO操作都要进行权限判断、类型检查,避免恶意用户上传木马文件或者删除、篡改系统文件。特别对于模板操作、文件夹的建立,文件或文件夹建立前需要检查文件名称或文件夹名称是否合法。

缓存泄漏

数据的缓存功能是十分重要的,我们可以把一些在一段时间内不发生改变的数据放在缓存中。这样,访问时不必每次去读取数据库,当下次再需要这些数据时,可以直接从缓存中取得,大大增强了效率。

系统加密

系统的信息加密对系统的安全性非常重要,做好系统的加密工作,有利于确保整个系统的安全。一个完善的加密体系,有利于确保密码的安全性和信息的完整性。用户密码采用哈希加密或采用混合方式加密,检查密码强度、记录密码更新频率并进行提示。重要的帐号登录处需要设置验证码以防止暴力破解,并且密码必须定期更新。

结合数据完整性验证,使得用户密码只能在特定程序中才有效。这样能有效地防止非法手段更改用户密码,有完善的加密程序和数据完整性检查,即使被得到数据库操作权限也不能得到应用程序的管理权限。

信息泄露

如果攻击者通过探测Web页来找寻引起异常的各种情况,则出现信息泄漏攻击。对于攻击者而言,这是一种颇有成效的攻击方法。因为异常细节信息常以HTML的形式返回并显示在浏览器中,这可能会泄漏很有用的信息,如堆栈跟踪。堆栈跟踪包含数据库连接字符串、数据库名、数据库方案信息、SQL语句以及操作系统和平台版本。

日志和监测

做好系统的日志监测,记录好后台管理操作和异常情况,有利于监测系统未知漏洞。通过操作日志,还能找出系统出错或对某些重要操作的管理员、操作时间、IP等信息。有效地预防、检测,增强系统的安全性。

Web.config的安全配置

包括authentication节点、authorization节点、customErrors节点、pages节点的安全设置。

根据权威部门调查显示,通过网站进行病毒、木马的传播已经成为黑客攻击的重要手段,网站安全现在已经成为我国病毒防范的重中之重,而国内的中小型网站更是黑客攻击的重灾区。这主要是因为中小型网站往往缺少足够的开发实力,而只能采用中小型的CMS系统来建设网站,而目前大部分中小型网站的开发者只关注了了功能的丰富性,却对安全问题和性能问题没有足够重视,导致这些系统漏洞百出。

“安全才是硬道理”,这已经成为所有网站经营者的共识。

声明:以上文章素材和专业知识由本站人工原创整理,谢绝转载。