软件质量属性——安全性

摘要:
它是指软件系统试图使用该系统拒绝向合法用户提供的服务,同时向合法用户同时提供服务。事实上,程序将验证和判断我们预先设置的一些过滤器条件_全局过滤器已注册在Start文件夹的FilterConfig.cs文件中。此全局筛选器用于登录授权。

安全性的定义:

指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力;

安全性面对的攻击方式:

未经授权试图访问数据或服务。

未经授权试图修改数据。

试图使用系统拒绝向合法用户提供的服务。

安全性的特点

通过软件执行才可见的质量因素;

安全性的需求:

对有保密性要求的数据实施安全控制;

提供系统运行日志监控信息,供管理员了解系统运行状态;

安全性的场景样例:

场景:有黑客对淘宝网进行sql注入,试图非法登陆网站后台,获取用户信息

刺激源:黑客(非授权用户)

刺激:试图采用非法手段来入侵淘宝后台以获取信息

制品:淘宝中的数据

环境:在线环境

响应:对访问用户进行验证,阻拦不正当的用户访问数据

响应度量:查到非法入侵时在1秒以内做出反应,进行阻拦处理,保护数据安全性

非法登陆拦截方式:

1.整个流程示意图:

软件质量属性——安全性第1张

2.具体实现

非法登录拦截,主要用到的是.net mvc里的过滤器。我们每次在执行一个方法时候,实际上程序会预先对我们设置的一些过滤条件进行验证和判断,而不同的过滤器作用的优先级是不同的,在实现这个拦截功能的时候,用到的主要是全局过滤器

具体的处理思路是这样的:我们现在App_Start文件夹下的FilterConfig.cs文件中注册一个全局过滤器,这个全局过滤器的作用是——进行登录授权,也就是检查你这个用户是不是已经登录的合法用户,如果不是,那么你做的任何其他操作,系统都不会响应,而是一直把你堵在登录界面。

using Console.App_Start;

using System.Web;

using System.Web.Mvc;

namespace Console

{

    public class FilterConfig

    {

        /// <summary>

        /// 注册全局过滤器

        /// </summary>

        /// <param name="filters"></param>

        public static void RegisterGlobalFilters(GlobalFilterCollection filters)

        {

            //filters.Add(new HandleErrorAttribute());

            //登录授权
            //在这里注册了一个名为 AuthFilter的过滤器,每次后台执行某个动作之前,都必须先要通过这个过滤器的审核,审核通过执行某操作,审核不通过有执行某操作。
            filters.Add(new AuthFilter());

        }

    }

}

授权条件核心代码:AuthFilter.cs

using Console.Util;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

 

namespace Console.App_Start

{

    public class AuthFilter:ActionFilterAttribute

    {

        public override void OnActionExecuting(ActionExecutingContext filterContext)

        {

            //如果用户未登录,且action未明确标识可跳过登录授权,则跳转到登录页面

            if (!CacheUtil.IsLogin&&!filterContext.ActionDescriptor.IsDefined(typeof(AuthEscape),false))

            {

                const string loginUrl = "~/Main/Login";

                filterContext.Result = new RedirectResult(loginUrl);

            }

            base.OnActionExecuting(filterContext);

        }

    }

}
 AuthEscape,这是一个定义过滤器特性的类,在这个我们只把它作为一个标志,作为一个可以免除登录授权的标志。我们在执行任何一个方法之前都会经过全局过滤的过滤,只有已经登录的用户才能执行action方法。但是,因为我们的登录信息是在登录之后才被记录的,那我们的登录操作,登录校验的操作不就也被挡在外面了吗,这样一来,岂不是永远无法登录了吗。所以呀,为了解决这个问题,我们就需要给这两个方法每人发一块免检通行证,也就是在他们头上写一个[AuthEscape],只要有了这个标志,那么上面的那句代码就会返回一个true,如果没有,那么就会返回false。假如既没有登录,又没有免检通行证,那么就会被拦在登录界面上。
AuthEscape.cs的代码如下:
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace Console.App_Start

{

    /// <summary>

    /// 用于标记无需登录授权验证的Action,无任何实现,在那个action上面标注这个,就可以逃过全局过滤器的过滤

    /// </summary>

    public class AuthEscape:ActionFilterAttribute

    {

    }

}
 

 

 

免责声明:文章转载自《软件质量属性——安全性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring之控制反转Nginx Session Sticky下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Wireshark——过滤器

一、捕获过滤器 选中捕获选项后,就会弹出下面这个框,在红色输入框中就可以编写过滤规则。 1)捕获单个IP地址 2)捕获IP地址范围 3)捕获广播或多播地址 4)捕获MAC地址 5)捕获所有端口号 6)捕获特定ICMP数据 当网络中出现性能或安全问题时,将会看到ICMP(互联网控制消息协议)。 在这种情况下,用户必须使用一个偏移量表示一个ICMP...

Windows中安装Davinci

Davinci 是一个 DVaaS(Data Visualization as a Service)平台解决方案,面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立部署使用,也可作为可视化插件集成到三方系统。用户只需在可视化 UI 上简单配置即可服务多种数据可视化应用,并支持高级交互/行业分析/...

完美解决php无法上传大文件代码

之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需求,都能得到满足。小小开心了一把。   但无论插件再怎么灵活,也难以应付所有的需求,比如,你要上传一个2G的文件。以现在我们的网速,恐怕再快也得传半小时。要命...

OpenStack实战(一)

  OpenStack作为当前发展势头迅猛的云计算开源项目,去年进行了一些了解,现在有空回来进行一些补充记录,当时实战的版本是那会最新版本,当然现在已经更新了好几版了,不过还是那句话“这些丝毫不影响,了解这个事物的本质,继续...”   作为一个对OpenStack是何物完全不知道,对“云计算”也是仅仅了解泛泛的我,要啃OpenStack这个骨头,先得了解...

CetOS 服务不支持 chkconfig 的解决方法

  今天在添加Elasticsearch系统自动启动服务的时候,提示 “服务 elasticsearch 不支持 chkconfig ”,如下图:           后来查找了下原因,是脚本编写的不符合规范,缺少关键的前三两行;   那么前三行是什么作用呢?   示例,前三行如下: #!/bin/bash #chkconfig: 2345 80 90...

adb获取Android性能数据

环境:Android测试环境 搭建Android测试环境: 1、下载AndroidSDK; 2、配置环境变量; (1)、ANDROID_HOME (2)、ANDROID_HOME-TOOLS (3)、ANDROID_HOME-PALTFORM-TOOLS 3、Android底层Java开发,如需运行安卓远程调试桥(adb),需Java运行环境; 4、下载J...