访问控制

细谈asp.net系统用户权限开发

浪子不回头ぞ 提交于 2020-03-02 16:49:10
谈起asp.net的系统控件,要提及RBAC的基本思想, RBAC,就是英文:role based access control,译为,基于访问权限角色,在设计电子商务网站中经常要用到。 电子商务系统对安全问题有较高的要求,传统的访问控制方法DAC(Discretionary Access Control,自主访问控制模型)、MAC(Mandatory Access Control,强制访问控制模型)难以满足复杂的企业环境需求。因此,NIST(National Institute of Standards and Technology,美国国家标准化和技术委员会)于90年代初提出了基于角色的访问控制方法,实现了用户与访问权限的逻辑分离,更符合企业的用户、组织、数据和应用特征。ASP.NET是微软为了抗衡JSP而推出的新一代ASP(Active Server Pages)脚本语言,它借鉴了JSP的优点,同时它又具有自身的一些新特点。 本文将首先介绍ASP.NET的基本情况和RBAC(Role Based Access Control)的基本思想,在此基础上,给出电子商务系统中实现用户权限控制的一种具体方法。 ASP.NET概述 ASP.NET ASP.NET是微软流行的动态WEB 编程 技术活动服务器网页(ASP)的最新版本,但它远不是传统ASP简单升级。ASP

自主访问控制和强制访问控制

老子叫甜甜 提交于 2020-03-01 09:57:25
在Linux操作系统: 一提到自主访问控制,人们想到的是基于属主、属组的读写执行的访问控制体系。 一提到强制访问控制,人们想到的是Selinux,基于Se的策略控制主体对客体的访问。 自主访问控制、强制访问控制,是一种安全策略,不能将其与具体的安全实现划等号。即使我们使用基于属主、属组的安全机制,也同样能够实现强制访问控制。 什么是自主访问控制、强制访问控制? 自主访问控制: 由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。也就是说,在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。 自主访问控制是保护系统资源不被非法访问的一种有效手段。但是这种控制是自主的,即它是以保护用户的个人资源的安全为目标并以个人的意志为转移的。 自主访问控制是一种比较宽松的访问控制,一个主题的访问权限具有传递性。 其强调的是自主,自己来决定访问策略,其安全风险也来自自主 强制访问控制: 用户的权限和客体的安全属性都是系统管理员人为设置,或由操作系统自动地按照严格的安全策略与规则进行设置,用户和他们的进程不能修改这些属性。 其强调是强制,由系统来决定。 不能说强制访问控制相比较而言,漏洞会更少一些,就使用强制访问控制替换自主访问控制。 其原因在于,这两种安全策略适用的是不同的场合。 有些安全策略,只有用户知道

MongoDB 3.0 安全权限访问控制

假如想象 提交于 2020-03-01 07:24:50
mongoDB 3.0 访问控制改了很多,需要你老老实实的去看文档去验证,谷歌百度出来的多半就是错误的。 还需要注意这个参数authenticationMechanisms。 为了兼用2.6版本,我直接指定下面的参数: setParameter: authenticationMechanisms: MONGODB-CR 不使用 —auth 参数,启动 mongoDB下面看看如何创建访问控制权限 mongodb-linux-i686-3.0.0/bin/mongod -f mongodb-linux-i686-3.0.0/mongodb.conf mongoDB 没有超级无敌用户root,只有能管理用户的用户 userAdminAnyDatabase 。此时你 show dbs 会看到只有一个local数据库,那个所谓的admin是不存在的。 添加管理用户 use admin db.createUser( { user: "buru", pwd: "12345678", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) 切换到admin下,查看刚才创建的用户:roles 中的 db 参数是必须的,不然会报错:Error: couldn’t add user: Missing expected field “db”

JAVA三大基本特征之【封装】

心不动则不痛 提交于 2020-02-29 03:42:43
1、面向对象的基本概述 JAVA是一门面向对象的高级编程语言,在JAVA语言中,除8个基本数据类型值以外一切都是对象,对象是JAVA程序的核心。 在JAVA程序中任意一个对象都可以都说成是一个类,类是JAVA程序的基本组成单位,所有的JAVA程序都可以说是由一个个类组成的。 JAVA作为一个面向对象的编程语言,完全支持面向对象的三大基本特征: 【封装】、【继承】、【多态】。 2、三大基本特征之【封装】 JAVA的基本组成单位是类,因此封装也是基于面向类对象进行操作的,封装这两个字从字面意思上不难理解,就是将对象的信息隐藏在对象的内部,实现对对象信息的隐藏和保护,其它对象或者外部程序想要操作或者访问该对象内的信息,只能通过该对象所" 授权 "的方法来对该对象进行访问或者操作。 因此封装有两个方面的含义 : 就是把该隐藏的隐藏——实现对对象内部信息的隐藏和保护。 把该暴露的暴露——实现与其它对象和外部程序的交互。 作为面向对象的三大基本特征之一,封装也有着自己的优点 : 隐藏对象内部信息和实现细节,提高了代码的安全性。 可以保证对象的完整性,实现对对象更精确的操作。 “高内聚”:封装对象详细信息, 从而便于修改对象的信息,提高对象的可维护性。 “低耦合”:良好的封装可以将一个个对象封装一个个独立而又完整的个体,便于修改和扩展,从而降低耦合。 3、对象授权的方式—访问控制符

Shiro -- (五) 授权

女生的网名这么多〃 提交于 2020-02-28 21:21:20
授权   授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象: 主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。 主体   主体,即访问应用的用户,在 Shiro 中使用 Subject 代表该用户。用户只有授权后才允许访问相应的资源。 资源   在应用中用户可以访问的任何东西,比如访问 JSP 页面、查看/编辑某些数据、访问某个业务方法、打印文本等等都是资源。用户只要授权后才能访问。 权限   安全策略中的原子授权单位,通过权限我们可以表示在应用中用户有没有操作某个资源的权力。即权限表示在应用中用户能不能访问某个资源,如: 访问用户列表页面 查看/新增/修改/删除用户数据(即很多时候都是 CRUD(增查改删)式权限控制) 打印文档等等。。。   如上可以看出,权限代表了用户有没有操作某个资源的权利,即反映在某个资源上的操作允不允许,不反映谁去执行这个操作。所以后续还需要把权限赋予给用户,即定义哪个用户允许在某个资源上做什么操作(权限),Shiro 不会去做这件事情,而是由实现人员提供。   Shiro 支持粗粒度权限(如用户模块的所有权限)和细粒度权限(操作某个用户的权限,即实例级别的),后续部分介绍。 角色   角色代表了操作集合,可以理解为权限的集合

HTTP访问控制(CORS)

岁酱吖の 提交于 2020-02-27 20:26:50
当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个 跨域 HTTP 请求 。 比如,站点 http://domain-a.com 的某 HTML 页面通过 <img> 的 src 请求 http://domain-b.com/image.jpg。网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。 出于安全考虑,浏览器会限制从脚本内发起的跨域HTTP请求。例如, XMLHttpRequest 和 Fetch 遵循 同源策略 。因此,使用 XMLHttpRequest 或 Fetch 的Web应用程序只能将HTTP请求发送到其自己的域。为了改进Web应用程序,开发人员要求浏览器厂商允许跨域请求。 (译者注: 这段描述跨域不准确, 跨域并 非 不一定是浏览器限制了发起跨站请求, 而 也可能是跨站请求可以正常发起,但是返回结果被浏览器拦截了。最好的例子是 CSRF 跨站攻击原理,请求是发送到了后端服务器无论是否跨域!注意:有些浏览器不允许从 HTTPS 的域跨域访问 HTTP,比如 Chrome 和 Firefox,这些浏览器在请求还未发出的时候就会拦截请求,这是一个特例。) 跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。浏览器支持在 API 容器中(例如

linux 文件访问控制 特殊权限 suid,sgid,sbit

青春壹個敷衍的年華 提交于 2020-02-25 22:18:50
setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写。我们一般会再次把它们缩写为 suid 和 sgid。它们是控制文件访问的权限标志(flag),它们分别允许用户以可执行文件的 owner 或 owner group 的权限运行可执行文件。 说明:本文的演示环境为 ubuntu 16.04。 SUID 在 Linux 中,所有账号的密码记录在 /etc/shadow 这个文件中,并且只有 root 可以读写入这个文件: 如果另一个普通账号 tester 需要修改自己的密码,就要访问 /etc/shadow 这个文件。但是明明只有 root 才能访问 /etc/shadow 这个文件,这究竟是如何做到的呢?事实上,tester 用户是可以修改 /etc/shadow 这个文件内的密码的,就是通过 SUID 的功能。让我们看看 passwd 程序文件的权限信息: 上图红框中的权限信息有些奇怪,owner 的信息为 rws 而不是 rwx。当 s 出现在文件拥有者的 x 权限上时,就被称为 SETUID BITS 或 SETUID ,其特点如下: SUID 权限仅对二进制可执行文件有效 如果执行者对于该二进制可执行文件具有 x 的权限,执行者将具有该文件的所有者的权限

PHP之面向对象小结

左心房为你撑大大i 提交于 2020-02-24 00:55:19
PHP 中创建对象 类创建后,我们可以使用 new 运算符来实例化该类的对象: $runoob = new Site; PHP 构造函数 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。 function __construct( $par1, $par2 ) { $this->url = $par1; $this->title = $par2; } 析构函数 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。 PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,其语法格式如下: void __destruct ( void ) 继承 PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承,格式如下: class Child extends Parent { // 代码部分 } 方法重写 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 访问控制 PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。 public(公有)

C++中类和结构体的区别

假装没事ソ 提交于 2020-02-23 23:00:38
结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性 即:类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(public)    【注】C中的结构体完全不同于C++中的结构体:在C中的结构体只能自定义数据类型,结构体中不允许有函 数,而C++中的结构体可以加入成员函数、访问控制权限、继承、包含多态等面向对象特性。 解释: C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象 的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。在C++中,不使用结构体丝毫不会影响 程序的表达能力。C++之所以要引入结构体,是为了保持和C程序的兼容性。但有时仍会在C++中使用结构 体,是因为,可以使用结构体将不同类型数据组成整体,方便于保存数据。 C++在struct之外引入了class关键字(类),但为了保持与C程序的兼容,C++保留了struct关键字,并规定结 构体默认访问控制权限为公有类型。 来源: CSDN 作者: 学无止境~zZ 链接: https://blog.csdn.net/weixin_44480968/article/details/104464321

快速上手和理解物联网开发平台

孤者浪人 提交于 2020-02-22 16:43:29
快速理解和上手物联网开发平台 文章目录 快速理解和上手物联网开发平台 导读 关于物联网 关于本课程 自我介绍 本文介绍 一、深入了解 MQTT 协议 1.1 MQTT 协议简介与基本概念 1.2 MQTT 主题 1.3 MQTT 控制报文格式 1.3.1 固定报文头 1.3.2 可变报文头 1.3.3 有效负载 1.4 MQTT 控制报文 1.4.1 CONNECT 1.4.2 PUBLISH 1.5 消息服务质量 QoS 1.6 MQTT 与传统 MQ 对比 二、走进 EMQX 2.1 认证访问控制 2.2 插件系统 2.3 共享订阅 2.4 系统主题 2.5 管理监控 API 2.6 EMQX 集群 三、 MQTT Client 库实践 3.1 建立连接 3.2 订阅主题 3.3 发布消息 四、 MySQL 认证和访问控制 4.1 MySQL 认证 4.2 主题设计 4.3 MySQL 访问控制 五、 处理设备上行数据 5.1 共享订阅 5.1.1 共享订阅主题设计 5.1.2 共享订阅客户端权限控制 5.1.3 消息流转 5.1.4 实现 5.2 WebHook 机制 5.3 消息去重 六、下行数据处理方案 七、功能规划和实现 7.1 EMQX 集群 7.2 设备生命周期管理 7.2.1 设备动态注册 7.2.2 设备上下线状态管理 7.2.3 设备删除与禁用 7.3