提高 Ruby 安全性的简单方法

2025-06-07

提高 Ruby 安全性的简单方法

Ruby 社区中的许多人都听说过Rubocop,并且很可能对它又爱又恨。如果您还没有听说过这个经常引起争议的瑰宝,以下是 Rubocop 文档中关于它的主要功能。

RuboCop 是一款 Ruby 静态代码分析器(又称 Linter)和代码格式化工具。它开箱即用,能够严格遵循社区Ruby 代码风格指南中的诸多准则。

然而,Rubocop 的作用不止强制执行代码风格指南。你知道吗,Rubocop 还可以用于强制执行安全最佳实践!

是的!没错!Rubocop 内置了一套Security Cops,可以帮助你编写更安全的 Ruby 和 Rails 代码。这些 Cops 包括:

除了安全警察之外,还有其他一些警察可以提高您的代码安全性。

  • Rails/OutputSafety - 使用html_saferaw可能存在安全风险。经常使用这些可能会导致跨站点脚本漏洞。
  • Style/MutableConstant - 不要将可变对象赋值给常量。这样做的安全隐患可能不太明显。例如,如果你不小心用用户数据更新了一个常量,然后该常量被另一个用户使用,就会造成数据泄露。因此,最好确保常量始终是不可变的。

如何只启用安全警察

如果你只想让 Rubocop 用来对付安保警察,而不是那些讨厌的警察 😉,那么你可以这样设置。首先,你需要安装 gem

gem install rubocop
Enter fullscreen mode Exit fullscreen mode

或者如果您正在使用 Gemfile...

gem 'rubocop', require: false
Enter fullscreen mode Exit fullscreen mode

安装完 gem 后,你需要rubocop.yml在主目录中创建一个文件来配置它。如果只想启用安全相关的 cops,你的 yaml 文件应该像这样 👇

AllCops:
  DisabledByDefault: true

Rails/OutputSafety:
  Enabled: true

Security:
  Enabled: true

Style/MutableConstant:
  Enabled: true
Enter fullscreen mode Exit fullscreen mode

然后您要做的就是运行它!

$ rubocop
Enter fullscreen mode Exit fullscreen mode

有关基本用法的更多提示,请查看rubocop 文档

编码愉快!😃

文章来源:https://dev.to/molly/one-easy-way-to-improve-your-ruby-security-21mc
PREV
防止无用的数据库访问
NEXT
让值班不再糟糕 一个有问题的值班系统 解决方案 回报 值班不应该糟糕