Web站点为什么会遭受攻击?是为了恶作剧?损害企业名誉?免费浏览收费内容?盗窃用户隐私信息?获取用户账号谋取私利?总之攻击方式层出不穷,作为B/S开发框架来说,帮助开发者做好解决安全问题也是刻不容缓的,本篇文章来告诉大家怎么防范挂马和WebShell攻击。

适用范围

Web网站

攻击原理

Webshell是攻击者在被攻击网站上植入的aspx、php、jsp程序文件,攻击者在入侵了一个web系统后,常常在将这些aspx、php、jsp木马后门文件放置在web服务器的web目录中,与正常的网站文件混在一起。然后攻击者就可以通过正常的web访问方式,访问其植入aspx、php、jsp程序木马后门控制web服务器,包括创建、修改、删除文件,上传下载文件,查看数据库,执行任意程序命令等。

解决方案

应用程序处理

1、B/S开发框架处理SQL注入问题

2、B/S开发框架采用白名单的形式验证文件上传类型

代码如下:

/// <summary>
/// 上传文件信息
/// </summary>
public class UploadFileInfo
{/// <summary>/// 上传结果(true 成功  false 失败)/// </summary>public bool Result{get;set;}/// <summary>/// 上传说明/// </summary>public string ResultMsg{get;set;}/// <summary>/// 文件名称/// </summary>public string FileName{get;set;}/// <summary>/// 修改后文件名称/// </summary>public string NewFileName{get;set;}/// <summary>/// 文件路径/// </summary>public string FilePath{get;set;}/// <summary>/// 文件扩展名/// </summary>public string FileExtension{get;set;}/// <summary>/// 文件大小/// </summary>public int FileSize{get;set;}
}/// <summary>
/// 文件上传帮助类
/// </summary>
public static class FileUploadHelper
{/// <summary>/// 文件上传/// </summary>/// <param name="postedFile">上传的文件</param>/// <param name="format">允许上传的文件格式</param>/// <param name="maxSize"></param>/// <param name="filePath">保存路径</param>/// <param name="savefileName">保存文件名(不含扩展名)</param>/// <returns></returns>public static UploadFileInfo Upload(HttpPostedFile postedFile, string format, int maxSize, string filePath, string saveFileName){UploadFileInfo fileInfo = new UploadFileInfo();fileInfo.Result = true;fileInfo.FileName = Path.GetFileName(postedFile.FileName);fileInfo.FileExtension = Path.GetExtension(fileInfo.FileName);fileInfo.FileSize = postedFile.ContentLength;saveFileName = saveFileName + fileInfo.FileExtension;//验证上传文件的格式if (format.IndexOf(fileInfo.FileExtension) == -1){fileInfo.Result = false;fileInfo.ResultMsg = "上传失败,上传文件格式不合法";return fileInfo;}if (fileInfo.FileSize > maxSize){fileInfo.Result = false;fileInfo.ResultMsg = "上传失败,上传文件大小超出限制";return fileInfo;}try{string savePath = HttpContext.Current.Request.MapPath(filePath);//判断物理路径是否存在,若不存在则创建路径DirectoryInfo dir = new DirectoryInfo(savePath);if (!dir.Exists){dir.Create();}fileInfo.FilePath = filePath + saveFileName;postedFile.SaveAs(savePath + saveFileName);}catch{fileInfo.Result = false;fileInfo.ResultMsg = "上传失败,发生异常";return fileInfo;}return fileInfo;}
}

  

管理处理

web开发框架基于Windows 2008下使用IIS7部署的web服务器,对IIS7的各项配置进行分析,以提高基于此环境下的WEB服务器的安全性。
1磁盘及文件夹设置
为提高系统下数据的安全性,服务器文件格式一律划分为NTFS格式,这样可以更好的配置磁盘的各种访问权限。一般情况下,各个分区都只赋予administrators和system权限,删除其他用户的访问权限,以保证拒绝任何未授权用户的访问。
2为站点建立相应的用户。
B/S开发框架软件系统的每个站点都使用专门建立的用户来进行权限分配,可以保证各个站点间是独立的,被隔离开的,不会互相影响的。
此类用户包含为站点建立用于匿名访问的用户和为用于应用程序池运行的用户。匿名访问用户属于GUEST组,应用程序池运行用户属于IIS_IUSRS组。
操作方法:右键点击“我的电脑”中,选择“管理”。选择“本地用户和组”窗格中,右键单击“用户”,选择“新用户”。在“新用户”对话框中,设置“用户名”、“密码”并勾选“用户不能更改密码”、“密码永不过期”,然后单击“确定”。
选择创建好的用户,右键单击用户名,选择属性,设置用户到相应的组即可。
3站点使用独立的应用程序池
每个站点使用的应用程序池应该是独立的,以便资源的合理分配,并且都以独立的标识账户运行,在出现异常情况时也不会互相影响。
操作方法:
(1)打开“IIS信息服务管理器”,右键单击“应用程序池”,选择“新建应用程序池”,填上名称,确定。
(2)单击此应用程序池,在操作栏中选择“高级设置”,将“进程模型标识”选择为之前创建的应用程序池运行用户。
(3)单击需要配置的网站,在操作栏中选择高级设置,应用程序池选择为上一步创建的应用程序池。
4启用匿名身份验证
B/S开发框架网站目录下所有文件启用匿名身份验证,便于用户可以匿名访问网站,并将之前建立的用户分配到该网站。
操作方法:
(1)在功能视图中双击“身份验证”,右键单击“匿名身份验证”,选择“启用”。
(2)单击该网站,在功能视图中双击“身份验证”,右键单击“匿名身份验证”,选择“编辑”匿名身份验证,并选择“匿名用户标识”为之前建立的用于匿名访问的用户。
注:需要赋予该匿名用户对此网站目录及文件相应的访问权限。
5启用基本身份验证
为保护指定目录不被匿名用户访问,需要启用基本身份验证,此项需要关闭指定目录的匿名用户访问权限。
操作方法:
(1)在功能视图中选择“身份验证”,右键单击“匿名身份验证”,选择“禁用”匿名身份验证。
(2)在功能视图中双击“身份验证”,右键单击“基本身份验证”,选择“启用”并编辑基本身份验证,为基本身份认证配置拥有访问权限的用户。
6取消上传目录的执行权限
网站程序正常运行所需的权限并不是完全一样的,可以在IIS中对网站目录进行针对设置,一般目录设置为读取,满足访问、浏览即可;需要上传文件的目录,在设置了写入权限后,可以将目录的执行权限去掉。这样即使上传了木马文件在此目录,也是无法执行的。
操作方法:选中网站的上传文件夹,选择“处理程序映射”,“编辑功能权限”,取消脚本和执行功能。
7基于IP地址或域名授予访问权限和拒绝访问。
在IIS 7中,默认情况下所有Internet协议(IP)地址、计算机和域都可以访问我们的站点。为了增强安全性,我们可以创建向所有IP地址(默认设置)、特定IP地址、IP地址范围或特定域授予访问权限的允许规则,以此来限制对站点的访问。
注:IP地址限制只适用于IPv4地址。
在“功能视图”中,双击“IPv4地址和域限制”。
在“操作”窗格中,单击“添加允许条目”。
在“添加允许限制规则”对话框中,选择“特定IPv4地址”、“IPv4地址范围”或“域名”,接着添加IPv4地址、范围、掩码或域名,然后单击“确定”。
8配置url授权规则。
我们可以允许或拒绝特定计算机、计算机组或域访问服务器上的站点、应用程序、目录或文件。通过配置URL授权规则,可以配置为指定组的成员访问受限内容。
操作方法:
(1)在“功能视图中,双击“授权规则”。在“操作”窗格中,单击“添加允许规则”。
(2)在“添加允许授权规则”对话框中,可以选择“所有用户”、“所有匿名用户”、“指定的角色或用户组”、“指定的用户”其中之一。
此外,如果要进一步规定允许访问相应内容的用户、角色或组只能使用特定HTTP谓词列表,则还可以选中“将此规则应用于特定谓词”。请在对应的文本框中键入这些谓词。
9配置ISAPI和CGI限制
默认情况下,B/S开发框架的多种文件扩展名均可在Web服务器上运行,为了降低此风险,应只允许您具有的那些特定ISAPI扩展或CGI文件在Web服务器上运行。
操作方法:
(1)在“功能视图”中,双击“ISAPI和CGI限制”。在“操作”窗格中,单击“添加”。
(2)在“添加ISAPI或CGI限制”对话框的“ISAPI或CGI路径”文本框中键入该.dll或.exe文件的路径,或者单击浏览按钮(...)导航至该文件的位置。
在“描述”文本框中,键入有关限制的简要描述。
(3)选中“允许执行扩展路径”,以允许限制自动运行。如果未选中此选项,限制的状态将默认为“不允许”。以后,您可以通过选择限制并在“操作”窗格中单击“允许”来允许该限制。

物理处理

转载于:https://www.cnblogs.com/bdft/p/10105161.html

B/S开发框架Web安全问题及防范规范之挂马和WebShell相关推荐

  1. DEDECMS织梦内容管理系统安全设置(防范网站注入挂马)

    "dede"太脆弱了,早不用早解脱","DEDE安全吗,怎么总是被入侵挂马? ","天,怎么回事,又被挂马了"经常能碰到这样的抱怨 ...

  2. 常见web漏洞及防范(转)

    单个漏洞,需要进行排查与整改,借着别人的智慧,做一个简单的收集.最好能够将常见漏洞,不限于web类的,进行一个统一的整理.这是今年的任务. 进行漏洞的工具的收集,为未来的工作做好基础... 一.SQL ...

  3. 九大web漏洞及防范方法

    九大web漏洞及防范方法 SQL注入漏洞 简介 常见SQL注入的位置 常见的防范方法 跨站脚本漏洞XSS 简介 常见XSS攻击类型 常见的防范方法 弱口令漏洞 简介 常用设置密码遵循规则 HTTP报头 ...

  4. 2012年企业Web应用安全防范与趋势展望

    本文讲的是2012年企业Web应用安全防范与趋势展望,你愿意,或者不愿意,2012年还是来了.生活照旧,只要搞IT,信息安全就还得重视.在上一年的最后几天,国内发生了"中国互联网史上规模最大 ...

  5. 前端安全问题及防范措施

    在现代 Web 应用程序开发中,前端安全问题备受关注.前端安全问题主要包括 XSS 攻击.CSRF 攻击.SQL 注入等.这篇文章将介绍这些安全问题以及如何防范它们,帮助读者更好地保护前端应用程序的安 ...

  6. 常见的web安全问题有哪些

    常见的web安全问题有哪些 (1)SQL注入 SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击.SQL危害到数据库的信息,管理员的账号密码 ...

  7. 手机端web/app界面设计尺寸规范

    手机端web/app界面设计尺寸规范 移动端高清.多屏适配方案 背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视 ...

  8. Linux下基于LAMP的WEB应用安全防范加固防护方法

    WEB 服务器由于 24 小时开放,相当于身在明处,难免暗处黑客的扫描和入侵,所以做好安全防范就是重中之重了. 常见的入侵方式集中在一些薄弱环节,比如 ThinkPHP 框架漏洞.Git 文件泄漏.不 ...

  9. WEB前端代码书写规范

    WEB前端代码书写规范 1. 命名规范 a.ClassName命名 ClassName的命名应该尽量精短.明确,必须以单页面字母开头命名,且全部字母为小写,单词之间统一使用下划线 "_&qu ...

最新文章

  1. Hadoop HDFS文件操作的Java代码
  2. 译:Spring Data Repository 不区分大小写查询
  3. datatables 响应式
  4. java二维数组的遍历
  5. php元素排序算法,php 4大基础排序算法
  6. java课程设计员工信息管理系统,javaweb课程设计之员工信息管理系统
  7. python广义矩估计_用EVIEWS进行估计时提示Near singular matrix解析
  8. 温习linux的常用命令
  9. python输入个人所得税计算_python-计算个人所得税
  10. 18、DQL(分页查询:limt)
  11. ARCGIS清晰的地图,底图,道路街景图
  12. 抽象思维能力训练随感
  13. 一信通短信接口对接_短信接口对接流程
  14. COVID-19 paper
  15. 【STM32利用CuBe MX生成HID设备】2-给游戏控制器添加X\Y轴
  16. 1790D Matryoshkas
  17. Python常用轮子下载网站
  18. 费城老鹰队门票老鹰登陆了六号种子为NFC淘汰赛
  19. HDU 4526.威威猫系列故事——拼车记
  20. 华大超低功耗单片机-样片、开发板快速免费申请方法

热门文章

  1. 华为Mate系列新机海外亮相 或将于MWC2019发布
  2. 程序员放弃阿里60w年薪,选到手5k的公务员,坚信公务员后期完胜程序员
  3. 128x64液晶驱动(添加详细)
  4. 还不会使用linux?快来通过VMware安装centos系统吧~
  5. python 获取当前月份月初日期和月末日期
  6. 贴图问题,opengl,linux,windows,消除锯齿,摩尔纹,yuv 还是 rgb
  7. “命令终端”的实现4-优化之解耦
  8. 【ElasticSearch】Es 源码之 NodeService 源码解读
  9. 【MySQL】MySQL 使用where条件的三种方式
  10. 95-130-346-源码-source-kafka相关-KafkaConsumerThread