当前位置: 首页 > news >正文

网站小程序app定制开发360建筑网上都是中介吗

网站小程序app定制开发,360建筑网上都是中介吗,设计说明的英文,网络规划设计师教程(第2版)pdf我最近更新了Mongometer #xff0c;使其更加灵活。 发布新版本后不久#xff0c;其中一位用户通过在帖子中发表评论来反馈问题。 我启动了我的机器#xff0c;打开了我的IDE#xff0c;发现了问题#xff0c;并在半小时内将修复程序推送到了github 。 这不是快速的成功案… 我最近更新了Mongometer 使其更加灵活。 发布新版本后不久其中一位用户通过在帖子中发表评论来反馈问题。 我启动了我的机器打开了我的IDE发现了问题并在半小时内将修复程序推送到了github 。 这不是快速的成功案例。 我很快就意识到如果将来我要使用Mongometer做任何事情我真的应该对用户如何对MongoDB中的数据库进行身份验证有更多的了解。 我不想花一个多小时左右因为我刚刚打开了一瓶Nyetimber Classic Cuvee –我也正在煮鸡肉派如果需要的话可以给我盖上锅我而不是在完成瓶子之前完成这篇文章。在深入探讨MongoDB Security可能存在的任何文档之前我将从一些观察开始。 因此以典型的男人风格让我们踢一下轮胎然后如果需要再踢RTFM。 启动一个mongod实例。 $ /usr/lib/mongodb/2.3.2/bin/mongod --port 27001 --fork --dbpath /data/db/2.3.2 --logpath /data/db/2.3.2/mongod.log $ ./mongo --port 27001 创建一个管理员用户 use admindb.addUser(mongouser,mongopass) 1 重新启动mongod $ sudo kill -15 $(ps -ef | grep mongo | grep -v grep | cut -f8 -d ) $ /usr/lib/mongodb/2.3.2/bin/mongod --port 27001 --fork --auth --dbpath /data/db/2.3.2 --logpath /data/db/2.3.2/mongod.log $ ./mongo --port 27001 验证给管理员 use admin switched to db admindb.aut(mongouser,mongopass) Thu Jan 31 13:53:31.271 javascript execution failed (shell):1 TypeError: Property aut of object admin is not a function db.aut(mongouser,mongopass) ^ db.aut(mongouser,mongopass) 哎呀 胖手指吧。 等等我认为我发现了问题1 第1期 如果管理员用户输入的auth命令不是凭据而不是凭据那么实际的凭据将保留在Shell历史记录中该历史记录将在各个会话之间持续存在。 任何其他用户都可能会来查看Shell历史记录并获取凭据。 另一方面如果命令正确并且用户名或密码或两者都不正确或者确实进行了身份验证尝试则该命令不会保留在历史记录中。 可使用与Linux框相同的方式使用mongo shell的命令历史记录-使用向上箭头 db.auth(mongouser,mongopass0) { ok: 0.0, errmsg: auth fails } 0db.auth(mongouser0,mongopass0) { ok: 0.0, errmsg: auth fails } 0db.auth(mongouser0,mongopass) { ok: 0.0, errmsg: auth fails } 0 好。 让我们针对管理员进行身份验证并继续。 use admin switched to db admindb.auth(mongouser,mongopass) 1 哎呀 我差点错过那里。 第2期 在mongod实例重新启动之前任何用户都可以… use admin switched to db admindb.system.users.find() { _id : ObjectId(510a58c6de50e136190f9ed7), user : mongouser, readOnly : false, pwd : c49caa1cb6b287ff6b1deaeeb8f4d149 } …获取用户名和哈希。 因此既然我已经重新启动了mongod实例那么任何用户都将必须针对admin进行身份验证才能查看system.users的内容。 现在继续输入不正确的凭据我将发起字典攻击看看会发生什么。 噢亲爱的。 发现了另一个问题。 问题3 没有锁定。 我写了一个快速的技巧来连接到mongod实例切换到admin并尝试登录。使用一个相当大的词典最后加上mongopass我尝试登录了一百万次。 这仅是一次粗略的单线程尝试大约需要17秒才能完成但是它表明没有帐户锁定。 我有信心如果需要的话我可以将多线程蛮力组合在一起。 我需要对此进行进一步研究以查看是否可以配置任何强行强制/字典式攻击警报或者是否可以应用锁定策略。 我还没有准备好RTFM。 让我们仔细看看system.users中的密码格式。 c49caa1cb6b287ff6b1deaeeb8f4d149 在我看来这就像MD5 。 让我们看一下可在github上浏览的代码。 哇 我很幸运。 db.js具有以下方法 function _hashPassword(username, password) { return hex_md5(username :mongo: password); } 使用hex_md5然后在utils.cpp中引用native_hex_md5 void installGlobalUtils( Scope scope ) { scope.injectNative( hex_md5 , native_hex_md5 ); scope.injectNative( version , native_version ); scope.injectNative( sleep , native_sleep ); installBenchmarkSystem( scope ); }static BSONObj native_hex_md5( const BSONObj args, void* data ) { uassert( 10261, hex_md5 takes a single string argument -- hex_md5(string), args.nFields() 1 args.firstElement().type() String ); const char * s args.firstElement().valuestrsafe();md5digest d; md5_state_t st; md5_init(st); md5_append( st , (const md5_byte_t*)s , strlen( s ) ); md5_finish(st, d);return BSON( digestToString( d ) ); } 是时候快速回顾一下了。 万一您错过任何东西 哈希算法为MD5 ; 我最不喜欢的哈希算法。 要散列的字符串格式为username :mongo: password ; 使用相同的“盐”不是最佳选择… 字符串:mongo:是全局的 我不太确定为什么它会一直存在。 我认为这可能现在就足够了否则它将变成tl; dr并且我可能会超出自我施加的时间限制。 回想我有关MongoDB的任何讨论相同的陈述总是出现在安全性的背景下。 默认情况下身份验证处于关闭状态。 MongoDB始终旨在部署在受信任的环境中 我不得不说即使启用了身份验证我们仍然遇到一些棘手的问题。 此外我认为不存在受信任的环境 。 此时就安全性而言是时候进行RTFM了。 我希望找到一个定义好的路线图以解决上述问题或者已经可以采取一些缓解措施。 因此在不久的将来会有一些 身份验证功能。 看来新的身份验证功能仅在MongoDB Subscriber Edition下可用我不确定这意味着什么……我也遇到了这个已知问题 它构成了……的基础。 问题4 如果用户在多个数据库中具有相同的密码则所有数据库上的哈希将相同。 恶意用户可能利用此漏洞使用不同用户的凭据来访问第二个数据库。 [原文]让我们分解一下。 “如果用户在多个数据库中具有相同的密码则所有数据库上的哈希将相同。” 是。 正确。 相同的用户名相同的密码和相同的“盐”即“mongo”字符串”等于相同的哈希。 好很酷让我们继续前进。 “恶意用户可能利用此漏洞使用不同用户的凭据来访问第二个数据库。” [原文] 恶意用户只有当在两个数据库中都拥有非只读用户时才能利用此漏洞。 如果他们仅具有只读访问权限则他们将无法列出system.users集合。 在这种情况下他们将永远不会首先看到不同数据库之间的哈希值是相同的。 如果它们不是只读的则可以列出system.users集合并使散列的密码脱机破解。 总结来说如果散列在数据库之间不匹配您将不得不进入破解领域 用户属性将是相同的。 在具有用户的不同数据库上不同用户的几率可能很高。 pwd属性将是相同的。 不同用户创建相同密码的几率很高。 “盐”是相同的因此在这里没有实际意义。 因此这里的问题是用户不是只读用户可以提取给定数据库的所有密码哈希然后将其脱机以进行破解。 恶意用户已经具有用户名和“盐”他们所需要寻找的只是密码。 结论 第1期 这有点令人难过。 正确输入命令后忽略凭据是否正确命令不会显示在历史记录中。 如果未正确输入命令则很难知道要从命令历史记录中排除的内容。 我猜您可以追溯删除导致身份验证之前导致错误的命令即无效命令。 那不是解决方案…… 第2期 可能存在一个论点即在admin数据库的system.users中创建了admin用户后应强制重新启动。 问题3 不费吹灰之力。 我已经多次编写了密码策略我过着什么样的生活是吗帐户锁定是密码101。 问题4 似乎为每个数据库创建一个“盐”mongo可以解决此问题。 看一下代码看起来实现是轻而易举的事是一次轻松快捷的胜利。 添加选项以手动设置它将会很盛大。 在幕后实施一个独特的“盐”使用户不必考虑它同样是宏伟的。 这样Nyetimber完成了发布完成了。 我并不是说这篇文章中有什么新的或聪明的地方这只是粗略的浏览。 我没有去 我提到的一切只是观察。 我几乎每天都安装mongo因为它是一个很棒的产品但是我确实喜欢拥有平衡的视野并识别房间中的任何大象。 我会对任何反馈感兴趣。 参考来自我们的JCG合作伙伴 Jan Ettles的MongoDB身份验证 位于ExceptionalExceptions例外博客。 翻译自: https://www.javacodegeeks.com/2013/02/mongodb-authentication.html
http://www.pierceye.com/news/398828/

相关文章:

  • 青山做网站西安十大网站制作公司
  • 网站服务器租用一年多少钱啊seo优化检测
  • 北京网站建设联系电话长春市网络科技有限公司
  • 软件下载网站免费大全济宁医院网站建设
  • 龙岩到永定株洲网站推广优化
  • 个人网站建设研究意义朔州seo网站建设
  • 怎样进入网站的后台视频网站建设方案书
  • 家具网站开发报告北斗导航2022最新版手机版
  • 好看的食品网站app图片怎么制作
  • 杭州做外贸网站wordpress给用户发送邮件
  • 政务服务 网站 建设方案软件外包平台哪家好
  • 上海千途网站建设网站建设 中企动力长沙
  • 网站建设产品介绍烟台定制网站建设电话
  • 公司内部网站设计客户关系管理策略
  • 个人开发网站要多少钱梅州市城乡建设局网站
  • 外贸公司网站案例建设银行报考网站
  • 网站设计建设步骤做暖网站
  • dw如何做网站界面全网推广外包公司
  • 企业网站数据库建设菠菜网站
  • 网站功能优化的方法营销型网站建设集装箱液袋
  • 建设资讯网站厦门网站建设哪家强
  • 惠阳网站设计开发图片做多的网站是哪个
  • 医院网站建设公司价格低本地网站搭建视频教程
  • 黑客攻击的网站网站开发需要多少钱app
  • 海南建设厅评审网站织梦网站加网站地图
  • 清迈城市建设网站外贸搜索网站
  • 怎样做网站公司网站建设维护管理
  • 伊犁网站制作珠海做网站的公司
  • 乐山市规划和建设局网站房地产基础知识
  • 网站给假冒伪劣产品做推广鞍山网站制作一般需要多少钱