首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

精选 Flexport 在 HackerOne 这一年 6 个有趣的安全漏洞

截至2017/6/27 HackerOne的统计 1 删除按钮中的XSS漏洞 当发起赏金计划时,我们没想到会收到有关 XSS 的有效报告,毕竟 React 中内置了防范这种漏洞的保护措施,不幸的是,...原因: 当时我们在使用 Bootbox 来显示错误消息并创建确认对话框。 Bootbox 独立于 React 管理 DOM 元素,因此不受 React 的 XSS 保护措施的影响。...另外,我们 向 ESLint 提交了一个 Lint 规则,防止以后大家犯同样的错误。 教训: 这个漏洞的关键点是,安全是很难的。我们很容易信任像 HTML 这样的准则,但保持警惕和怀疑同样重要。...4 Wordpress 的困境 修复完上述漏洞,我们没有收到更多与前端相关的漏洞,然而我们在 HackerOne 的赏金计划仍然在博客中延续。...修复: 修复方法很简单:我们添加了速率限制,即在多次错误尝试后锁定账户。 6 绕过 2FA 最后,我们收到了一份报告,展示了对我们 2FA 的完全绕过,这使得第二重认证完全没有起作用。

2.4K80

CTO 写低级 Bug,致公司 70 GB 数据遭泄露!

在这份代码中存在一个很明显的错误类型,而这往往是新手才容易犯的错误,即第 23 行代码中,拆分了“reject”和“filter”代码,这两个 API 函数实现了防止 SQL 注入攻击的编程习惯。...对此,Facebook 的前产品工程师 Dmitry Borodaenko 在一封电子邮件中写道,“ 或许 Rails 的官方文档没有警告过用户存在这个陷阱,但是,如果作为开发者,完全了解在 Web 应用程序中使用...作为一家创业型的开源社交网络服务平台,其支持言论自由,也一直被视为 Twitter 的最佳替代品,不过,Gab 此次在没有任何解释之下,直接删除提交的代码,引发业界不小争议。...3、网友:不足为奇 针对这样的错误,也引发了不少网友的讨论: 一点都不足为奇。在某一时刻,当他们有一个 API 时,我可以跟踪和看到在网站上看不到的"锁定"帐户中的信息。...这并不是说我喜欢 Gab 这家公司,但我不知道有多少这样的新手错误,然后最终会被归咎于"外包公司"。

57610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用Prometheus监视您的Ubuntu 14.04服务器

    没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。...在打开的页面上,在表示Expression的文本字段中键入度量标准的名称(例如,node_procs_running)。然后,按蓝色的执行按钮。.../databases/mydb.sqlite3" >> ~/.bashrc 在本教程中,您将在生产模式下运行PromDash,因此请将RAILS_ENV环境变量设置为production。...在显示的表单中,为您的目录命名,例如My Dashboards,然后单击Create Directory。 提交表单后,您将被带回主页。立即单击“ 新建仪表板”按钮以创建新仪表板。...在显示的表单中,为仪表板命名,例如Simple Dashboard,然后从下拉菜单中选择刚刚创建的目录。 提交表单后,您将能够看到新的仪表板。 您的信息中心已有一个图表,但需要进行配置。

    4.3K00

    如何使用Prometheus监控CentOS 7服务器

    没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。...在打开的页面上,在表示Expression的文本字段中键入度量标准的名称(例如, nodeprocsrunning)。然后,按蓝色的执行按钮。.../databases/mydb.sqlite3" >> ~/.bashrc 在本教程中,您将在生产模式下运行PromDash,因此请将RAILS_ENV环境变量设置为production。...在显示的表单中,为您的目录命名,例如My Dashboards,然后单击Create Directory。 提交表单后,您将被带回主页。立即单击“ 新建仪表板”按钮以创建新仪表板。...在显示的表单中,为仪表板命名,例如Simple Dashboard,然后从下拉菜单中选择刚刚创建的目录。 提交表单后,您将能够看到新的仪表板。 您的信息中心已有一个图表,但需要进行配置。

    6.6K00

    绕过GitHub的OAuth授权验证机制($25000)

    用户也可以选择拒绝Foo App的访问) 在检查该流程时,我首重查看了“Authorize”按钮的具体实现行为,之后我发现该“Authorize”按钮其中是一个独立的HTML格式,它会发送一个包含CSRF...HTTP HEAD请求时Rails路由在说谎 HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。一个HEAD请求的响应中,HTTP头中包含的元信息应该和一个GET请求的响应消息相同。...这种方法可以用来获取请求中隐含的元信息,而不用传输消息实体本身。也经常用来测试超链接的有效性、可用性和最近的修改。...所以Rails以及其它的一些网络框架采用了一个聪明的技巧:它试图将HEAD请求路由到与GET请求相同的地方,然后运行控制器代码,以此省略掉消息响应体。...发送一个授权验证的HEAD请求,将会发生什么情况?前面我们说过,Rails路由会把它当成GET请求来处理,所以它会被发送到控制器中。

    2.8K10

    为什么要使用Node.js?

    这篇文章中,我不仅讨论那些已经实现的优点,还会结合一些经典的Web应用模型,告诉你为什么你要使用Node.js,以及为什么不要使用Node.js。 它是怎样工作的?...避免异常冒泡到程序顶部,可以将错误当做回调函数的参数。...在服务端,我们有一个简单的Express.js的应用,它实现两个功能:1.当我们请求根目录时,它返回一个包含消息面板,用来发送消息的按钮,还有输入框的网页。...在客户端,我们有一个监听两个事件的页面,其中一个监听发送按钮点击事件,获取输入框中的消息,并通过websocket发送到服务端,另一个事件监听websocket客户端新消息(这个消息来源于其他用户,服务端转发给所有在这个聊天房间的用户...当一个用户发送消息,会经过如下几步: 浏览器监听发送按钮点击,JavaScript处理事件,从输入框中获取消息内容,websocket发送消息。

    3.3K21

    使用Capistrano,Nginx和Puma在Ubuntu 14.04上部署Rails应用程序

    -sSL选项由三个标志组成: -s 告诉curl以“silent mode”下载文件 -S 告诉curl如果失败则显示错误消息 -L 告诉curl在检索安装脚本时遵循所有HTTP重定向 下载后,脚本将传到...注意:如果第二个命令失败并显示消息“GPG签名验证失败”,则表示GPG密钥已更改,只需从错误输出中复制命令并运行它以下载签名。然后运行用于RVM安装的curl命令。...在本地计算机上打开终端。如果您没有本地计算机的SSH密钥,也可以为其创建一个。...,在Rails应用程序中为Nginx和Capistrano创建配置文件。...输入以下命令来捆绑您的Rails应用程序: $ bundle 捆绑后,运行以下命令配置Capistrano: $ cap install 这将创建: Capfile 在您的Rails应用程序的根目录中

    5K40

    Ansible和Docker的作用和用法

    当我完成这些基本设定后,就可以部署我的应用了。值得一提的是这个过程中我没有配置任何数据库或程序开发语言,Docker 已经帮我把应用所需要的事情都安排好了。...的模块等等,但与数据库或消息队列这种重要的概念相比起来,这些语言就处于很随便的境地了——随便给我个编程语言环境,我都能把数据库和消息队列系统跑起来。...:2.8 Ansible 会查看这个文件,并且通知 Docker 加载正确的镜像,然后在容器中启动。...Docker 容器内运行 Rails 应用 没有本地 Docker 镜像,从零开始部署一个中级规模的 Rails 应用大概需要100个 gems,进行100次整体测试,在使用2个核心实例和2GB内存的情况下...另外,一旦一个 Dockedr 镜像编译出来,并且针对我的某个版本的应用的测试都被通过,我就可以把这个镜像提交到一个私有的 Docker Registry 上,可以被其他 Docker 主机下载下来并启动一个新的

    2.2K20

    用selenium自动化验收测试

    目前,已经有人在致力于将 Selenium 集成到 Ruby on Rails 中,但是在我撰写本文之际,这个集成版本还没有被发布。...回页首 现实中的需求 在接下来的两节(现实中的需求 和 现实中的用例)中,我将描述如何在现实场景中使用 Selenium,并针对用 Ruby on Rails 和一点儿 Ajax 技术编写的一个简单的股票报价查看器应用程序编写...在某些平台上,必须执行一些额外的步骤,所以请访问 Ruby on Rails 网站,以获得更多细节。 在我撰写本文之际,目前可用的 Selenium 版本是 0.6。...从命令提示符下运行 Ruby on Rails 回页首 现实中的用例 在本节中,我将列出示例应用程序的用例。...为此,在浏览器中打开 http://localhost:3000/selenium/TestRunner.html,然后单击 图 6 中所示的 All 按钮。

    6.2K30

    水货CTO入职不到半年犯下低级错误,将公司拖入无底深渊

    提交的内容显示,一名软件开发人员使用 Fosco Marotto 的账户提交了代码,代码中明显存在新手错误,这种错误可能会导致报道中的泄密事件。...Facebook 的前产品工程师 Dmitry Borodaenko 在一封电子邮件中提醒了我这个问题。...Mastodon 项目的代表没有立即回复询问他们是否同意批评者的担忧的电子邮件。 此外,Gab 的 Git 提交还显示出,除了关于安全编码和许可合规的问题外,公司开发者也在努力修复他们脆弱的代码。...这件事情也引起了开发者的广泛关注,一位从事多年 Rails 开发的网友说:“这是不好的代码,让我感到惊讶的是这是由一位前 Facebook 工程师写的(后来他成了 CTO)。...在 2021 年还能让黑客利用到 SQL 注入漏洞,这很让人不可置信,一位网友在 Reddit 上评论道,“代码将要部署到生产环境中,在合并代码之前难道没有让同行审查吗?

    99720

    你了解Node.js的原理和应用场景吗?

    “,2011年在 IBM developerWorks 上发布;不幸的是,这篇文章的链接现在已经失效了),这还没有算上线程之间的上下文切换的成本。这就是你通常在传统的 Web 服务器技术中处理的场景。...为了避免异常冒泡到顶层,常用技术是将错误作为回调参数传递回调用者(而不是像在其他环境中那样抛出它们)。...在客户端,我们有一个 HTML 页面,其中设置了几个处理程序,一个用于“发送”按钮的单击事件,它接收输入消息并将其发送到 websocket,另一个用于侦听新的传入消息并显示在 websockets 客户端上...当其中一个客户发布消息时,会发生以下情况: 浏览器捕获单击“发送”按钮事件处理 JavaScript 程序,从输入字段(即消息文本)中获取值,并使用连接到我们服务器的 websocket 客户端发出 websocket...或者在更高级的解决方案中,可以用消息队列作为消息路由,还可以实现更强大的传递机制,例如可以在连接丢失或在客户端脱机时存储消息。

    4.5K40

    Web 开发的新标杆!7 个 JavaScript One-Liners 改变您的编程方式

    我记得第一次看到 Ruby on Rails 的演示时的情景。演示者花费很少的精力就创建了一个可用于实际业务目的的全栈 Web 应用程序。...Ruby on Rails 在 2000 年代中期将事情提升到了一个新的水平 - 在正确的时间出现,成为 Twitter、Shopify、GitHub 和 Airbnb 最初启动工作的首选技术。...设计选票小程序为了开始在 Zipper 平台上工作,我导航到 zipper.dev并单击“登录”按钮。...接下来,我选择了一个身份验证源:添加描述登录后,我使用仪表板中的“创建小程序”按钮创建一个新小程序:添加描述系统会生成一个唯一的名称,但可以更改该名称以更好地识别您的用例。...提供的电子邮件值必须与注册选民匹配,否则将显示“所提供的电子邮件地址无权为此选票投票”消息。必须至少有一名候选人可以投票,否则将显示“没有为该选票配置候选人”消息。

    14640

    Java 近期新闻:新 JEP、GraalVM 23 早期访问构建、Infinispan、Mojarra

    ),在 JDK 19 中交付;JEP 420(switch 模式匹配第 2 次预览),在 JDK 18 中交付;JEP 406(switch 模式匹配开关预览),在 JDK 17 中交付。...ParseXMLTestCase类,删除未使用的方法、变量和注释掉的代码;确保@FacesConfig注解中的version()方法不会返回null;修复了在更新数据表分页标题中的按钮时报NumberFormatException...Apache 软件基金会 Apache Groovy 4.0.10 发布,带来了一些值得注意的 Bug 修复和改进,包括:来自GroovyScriptEngine类的令人困惑的错误消息;局部变量值未丢弃时的内存泄漏...;@Builder注解在 JDK 16 上不起作用;MissingPropertyException截断嵌套类的类名。...属性;Java Archive 实用工具为JAVA_OPTS环境变量生成的错误格式;改进执行外部命令时的错误处理。

    1.2K30

    为什么要用 Node.js?

    “,2011年在 IBM developerWorks 上发布;不幸的是,这篇文章的链接现在已经失效了),这还没有算上线程之间的上下文切换的成本。这就是你通常在传统的 Web 服务器技术中处理的场景。...为了避免异常冒泡到顶层,常用技术是将错误作为回调参数传递回调用者(而不是像在其他环境中那样抛出它们)。...在客户端,我们有一个 HTML 页面,其中设置了几个处理程序,一个用于“发送”按钮的单击事件,它接收输入消息并将其发送到 websocket,另一个用于侦听新的传入消息并显示在 websockets 客户端上...当其中一个客户发布消息时,会发生以下情况: 浏览器捕获单击“发送”按钮事件处理 JavaScript 程序,从输入字段(即消息文本)中获取值,并使用连接到我们服务器的 websocket 客户端发出 websocket...或者在更高级的解决方案中,可以用消息队列作为消息路由,还可以实现更强大的传递机制,例如可以在连接丢失或在客户端脱机时存储消息。

    2.7K20

    一步一步教你注册GitHub账号及简单使用

    目前,其注册用户已经超过 350 万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、Python 等。...邮箱一栏:要填写合法邮箱,并且是未在 GitHub 注册过的邮箱,否则会弹出错误提示 密码一栏:注意密码至少是7个字符。 这些填写正确之后,此时点击最下方的绿色大按钮就开始注册了。...三:本地仓库上传到GitHub仓库 在 G 盘下 GitHub 仓库中有一个 Mytest.txt 文件,现在要讲 Mytest.txt文件上传至 GitHub 中。...1:文件保存至本地仓库,鼠标右击选择 Git Bash Here 配置用户名和邮箱 白线部分分别是账户和邮箱 添加和提交 这里报错是因为 G 盘 GitHub下没有 ....中的 SSH 远程提交:git push origin master JiekeXu0 是我注册的账号,这时再看 GitHub 中的 Mytest 仓库,发现多了一个 Mytest.txt

    54.1K60

    基于Docker部署GitLab环境搭建,以及项目管理

    我是在本地虚拟机进行搭建,所以建议虚拟机内存2G以上,且注意一定要配置阿里云加速,否则下载很慢(如何配置本文章就不演示了) 一、通过docker下载gitlab镜像文件 docker pull beginor...第三步:启动可能会有些慢,如果发生链接等错误,可以吧内存扩大点在启动,启动的时候4G内存等个5分钟左右吧...,访问ip和端口就是如下界面 ?...第四步:登录GitLab 默认账号:root 密码:自己上一步设置的 ? 第五步:登录之后,并创建一个项目 ? ? 第六步:管理项目上传,在idea插件中安装gitlab插件 ?...第七步:接着在本地项目中创建一个gitlab本地仓库 ? ? 第八步:上传项目 首先我们会先将项目提交到本地仓库,然后在提交到远程仓库 ? ? 首次是需要输入自己的gitlab账号密码 ?...提交到本地git仓库,检查没问题后,我们就将项目push到远程仓库了 ? 填写自己的名字 以及你要上传的gitlab仓库的地址 ? 填写你的GiaLab账号密码 ?

    1.8K11

    大三小白初次接触封闭式开发总结

    前言:一晃眼都差不多11天没有更新了,差一点都以为自己松懈没有努力了,hhh...这几天去跟着一个项目组在酒店封闭式开发,经过了四天,今天算是回归学校实习的队伍中(时间冲突找了个人先替我去了学校安排的实习单位...前端方面修复了一下关闭按钮没关联上不起作用的问题,修复了分页中可选每页显示数据不起作用的问题,给导入数据的每一个页面增加了一个 loading 等待提示(之前导入稍微多一点儿还以为系统卡了,没任何提示)...,很多不清楚不明确的地方就该去问,比如我在调整表格宽度的时候以为某个字段不会很长所以调得差不多不长不短,后来提交代码上去就被叫过去给说一顿; 笨点就笨点,但一定不要出错!...就比如他们分页栏右边给搞了一个可以设置每页显示多少数据的这么一个东西,我测试了几下没有用,发现代码上是在基类上写死了每页显示20行数据,我要去把这个改掉,第一反应就是找个快捷键把所有的相同语句给改掉,但是前辈说最好别这样...; 最后很重要的一点是:原来企业级的代码没有和我想象中的差距那么大嘛!不过逻辑和工程量上确实天差地别,好的东西体现出来的不仅仅是技术,更多的是细节!

    54240

    还是编程新手?这10条 GitHub 秘籍送给你

    查看用户的全部 Commit 历史 在 Commits 页面 URL 后加上 ?author={user} 查看用户全部的提交。...$ git commit -m "Fix screwup, fixes #12" 这将会关闭 Issue #12,并且在 Issue 讨论列表里关联引用这次提交。 5....表情符 可以在 Pull Requests, Issues, 提交消息, Markdown 文件里加入表情符。使用方法 :name_of_emoji: :smile: 将输出一个笑脸: ?...快速引用 在主题评论中引用之前某个人所说的,只需选中文本,然后按 r 键,想要的就会以引用的形式复制到你的输入框里。 3....粘贴剪贴板中的图片到评论 (仅适用于 Chrome 浏览器) 当截屏图片复制到剪贴板后(mac 上用 cmd-ctrl-shift-4),你可以用(cmd-v / ctrl-v)把图片粘贴到评论框里,然后它就会自动上传到

    92530
    领券