梦幻房屋数据有问题权限有问题了?还是操作有误呢

966,690 十一月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
<area shape="rect" coords="0,0,200,54" href="http://2017.qconbeijing.com/?utm_source=infoq&utm_medium=cornerbanner" target="_blank" alt="AS">
您目前处于:
数据越权访问,谁之错?
数据越权访问,谁之错?
ArchSummit全球架构师峰会(北京站)-03日举办,
相关厂商内容
相关赞助商
更多AWS最新精彩内容和活动,!
在乌云的漏洞报告中,我们看到,白帽子利用传入参数的可猜测性(使用整形数据做记录id),直接变更输入的addressid参数,就可以拿到他人隐私信息。这是一个典型的BAC问题。修复也非常简单,只要在服务端对请求的数据和当前用户身份做一个校验检查即可。但是在这类应用中,诸如此类的数据如此之多,从地址数据,到订单信息、支付信息等等,无一不需要小心处理。当业务复杂到一定程度之后,没有谁能够保证这些数据的访问都经过了严格的权限检查。所以出现BAC问题,似乎是难以避免的。
让我们从设计的角度重温一下这个用例中的一些普遍特征。
对于收货地址而言,在这类B2C商务平台上应该存在几类不同的访问场景:
对于平台运营商来说,需要有权限对这些数据进行读取操作。
对于在平台上开展销售的商家来说,一旦与该用户产生了直接的交易,那么也应该对这些数据有权进行操作(实际上地址数据会在产生订单时发生克隆,我们简化这个过程,视之为引用关系)。
对于消费者本身,应该有权对这些数据进行操作。
那么最基本的,针对这些场景,我们需要对目标数据的访问进行不同逻辑的权限检查。
如果是平台运营系统请求数据,那么不需要进行权限校验。
如果是平台商家用户请求数据,那么应该检查该数据的拥有者,即消费者,是否授权该商家访问其地址信息(判断依据为检查是否产生交易) 。
对于消费者本身,需要检查目标数据的拥有者与请求方是否同一用户。
这三类场景需要的检查逻辑各不相同,那么在后端,我们需要什么样的API或者服务(Service)来为前端的这三种场景提供数据呢?
通常的系统中都会存在类似GetAddressById这样的API或者服务,来为前端系统服务。那么接下来前端系统需要根据自身的场景,来实现各自的校验逻辑。但是,这样合理吗?由于这些API的粒度是如此之小,任何一个开发人员,在实现任何一个业务场景时都可能会使用到。这些使用到的地方,如何保证都经过严格的权限检查呢?
可能AOP是一种解决问题的方式,但是实际实现中,你会发现,很难针对不同的使用场景而提供一致的权限校验方式。姑且不论性能高低,仅就用户身份的确认这一点,就很难在统一的代码中去适应不同的场景。
那么我们就需要重新来审视GetAddressById这种API了。对于平台运营商系统的使用场景,这个API没有任何问题。但是对于平台商家后台和消费者系统,是否需要类似于GetAddressByIdAndMerchantId和GetMyAddressById这种API呢?
仅仅增加了不同粒度的后端API,这并不能保证从此可以高枕无忧了。对前端开发者来说,如果这3个API都可见可用,那么很难保证不会被使用在不恰当的场景中。
一个在实际应用中被采用的解决方案是,把这3个API封装到不同的服务(Service)或者包(Package)中,并在不同的项目中设置仅对自己的场景可见。这样在每个应用中,也只能使用符合自己的业务场景安全要求的后端API/Service。
现实中的情况可能复杂很多,贯穿业务系统前后端的ACL(访问控制列表)在实现上会非常繁琐而且成本较高,也可能并不适用于每个应用场景。但是分清楚数据的安全域划分,根据不同的场景设计符合要求的后端API/Service,同时对后端API/Service根据不同的安全域进行隔离,这是非常实用的一种思路。
好的后端API/Service设计,会让开发者即使并不清楚相关的安全考量和安全开发知识,依然能够开发出符合授权标准的应用。这也是安全架构的重要组成部分。
殷钧钧(),无业游民,Web开发者。业余时间,他是一名白帽子,独立安全组织。主要关注的技术领域有应用安全、分布式系统架构、以及程序员的敏捷实践。个人博客:
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博()或者腾讯微博()关注我们,并与我们的编辑和其他读者朋友交流。
Author Contacted
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
Re: 谁之错?
Huang Chon
这样能否解决
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
InfoQ每周精要
通过个性化定制的新闻邮件、RSS Feeds和InfoQ业界邮件通知,保持您对感兴趣的社区内容的时刻关注。
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。金税卡错误信息原因及解决方案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
金税卡错误信息原因及解决方案
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩21页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢数据库(52)
1.1&&&&&& 现象描述
普通用户授予sysdba权限登录数据库失败,系统显示如下错误信息:
% sqlplus &username&/&password&@&connect_string& as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:11 2009
Copyright (c) , Oracle.& All rights reserved.
ORA-01017: invalid username/ logon denied
但是以sysdba用户直接登录,系统提示如下信息:
% sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:35 2009
Copyright (c) , Oracle.& All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
1.2&&&&&& 可能原因
Oracle初始化参数“REMOTE_LOGIN_PASSWORDFILE”设置为“NONE”,导致为普通用户授予SYSDBA权限登录失败。
1.3&&&&&& 定位思路
检查“REMOTE_LOGIN_PASSWORDFILE”的&#20540;。
系统显示如下信息:
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile&&&&&&&&&&& string&&&&& NONE
由查询结果可知:“REMOTE_LOGIN_PASSWORDFILE”的&#20540;为“NONE”。
1.4&&&&&& 处理步骤
以oracle用户登录主机节点。 以sysdba用户连接数据库。
% sqlplus / as sysdba
在主机节点通过spfile文件创建pfile文件。
SQL& create pfile='/oracle/app/admin/ora11g/pfile/inittest.ora'
创建成功,系统提示如下信息:
File created.
修改新创建的pfile中的参数。
5.&&&& .....
6.&&&& *.remote_login_passwordfile='none'
将“remote_login_passwordfile”&#20540;修改为“exclusive”。
关闭数据库。
SQL& shutdown immediate
通过新创建的pfile文件启动数据库。
SQL& startup pfile='/oracle/app/admin/ora11g/pfile/inittest.ora'
通过pfile文件创建spfile文件。
退出数据库。
以sqlplus用户重新登录数据库。
% sqlplus &username&/&password&@&connect_string& as sysdba
登录成功,系统显示如下信息:
SQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 26 14:28:35 2009
Copyright (c) , Oracle.& All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
在备机节点执行与主机节点相同的操作。
1.5&&&&&& 参考信息
Oracle初始化参数“REMOTE_LOGIN_PASSWORDFILE”是设置Oracle数据库的密码验证方式。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44785次
排名:千里之外
原创:50篇
(33)(1)(31)(1)(1)(1)(1)(7)(58)织梦5.7-选择数据库失败,可能是你没权限,请预先创建一个数据库 - 推酷
织梦5.7-选择数据库失败,可能是你没权限,请预先创建一个数据库
当前位置:首页&&建站教程&& 正文
时间: 17:28:16
发布:陈新明 | 分类:建站教程 | 评论:
最近很多朋友在安装织梦5.7时候在填写数据库信息时候出现错误,正常情况下我们只需要输入数据库用户名、密码后其他选项可以暂时默认等安装好之后再行修改。但是5.7出现了一个错误信息:
在我们完全确认数据库用户名以及密码都完全正确的情况下还是提示有错误信息,
错误提示信息:选择数据库失败,可能是你没权限,请预先创建一个数据库。
问题分析:
首先在我们填写数据库信息步骤在数据库名称那一项是默认的dedecmsXXX,当你鼠标经过会提示:没有此数据库系统安装会自动创建。这句话的意思就是如果你的数据库里没有dedecmsXXX这个数据库,在安装过程中会自动创建。
结果很多小空间商没有给用户创建数据库权限,一般是小空间商,大的空间商都给的。(我们可以通过数据库控制面板-高级管理-点击进入高级管理,这个时候会使用phpMyAdmin 进入我们的数据库,我们很明显的可以看到
创建一个新的数据库
下面红色提示信息:无权限。)
综上,我想大家应该知道原因所在了,意思就是你要是采用默认的数据库dedecmsXXX的话,你的空间商就必须给你创建数据库的权限,结果现在一般小空间商没有给我们这个权限,所以就导致了这个错误提示。
解决方法:
解决方法很简单,在填写数据库信息的步骤中,我只要把默认的数据库名称dedecmsXXX修改为我们自己的数据库名就可以解决了。
当我们输入自己的数据库名会提示将覆盖原有数据,
我们一般的mysql数据库的数据库用户名和数据库名是一样的)
除非注明,文章均为陈新明SEO博客原创,转载请注明本文地址:
标签:dedecms&&
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 深圳inf数据有问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信