Ruby 보안을 향상시키는 쉬운 방법
RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide.
그러나 Rubocop은 단순히 스타일 지침을 시행하기 위한 것이 아닙니다. 보안 모범 사례를 적용하기 위해 Rubocop을 사용할 수 있다는 사실을 알고 계셨습니까?
네! 좋아요! Rubocop에는 보다 안전한 Ruby 및 Rails 코드를 작성하는 데 도움이 되는 세트Security Cops가 내장되어 있습니다. 경찰은 다음과 같습니다.
Security/Eval - eval 사용은 심각한 보안 위험을 나타냅니다.
Security/JSONLoad - 잠재적인 보안 문제로 인해
JSON.parse
보다 JSON.load
를 사용하는 것이 좋습니다. 자세한 내용은 ruby docs을 참조하십시오. Security/MarshalLoad - 잠재적인 보안 문제로 인해
Marshal.load
또는 Marshal.restore
를 사용하지 마십시오. 자세한 내용은 ruby docs을 참조하십시오. Security/Open - Kernel#open의 사용은 심각한 보안 위험을 나타냅니다.
Security/YAMLLoad - 잠재적인 보안 문제로 인해
YAML.safe_load
보다 YAML.load
를 사용하는 것이 좋습니다. 자세한 내용은 ruby docs을 참조하십시오. 보안 경찰 외에도 코드 보안을 개선할 수 있는 몇 가지 다른 경찰이 있습니다.
Rails/OutputSafety -
html_safe
또는 raw
를 사용하면 보안 위험이 발생할 수 있습니다. 종종 이를 사용하면 cross site scripting 취약점이 발생할 수 있습니다. Style/MutableConstant - 가변 개체를 상수에 할당하지 마십시오. 이것의 보안 영향은 덜 명확할 수 있습니다. 예를 들어 실수로 user data 라는 상수를 업데이트한 다음 해당 상수가 다른 사용자에게 사용되면 갑자기 데이터가 누출됩니다. 이러한 이유로 상수는 항상 변경할 수 없도록 하는 것이 가장 좋습니다.
보안 경찰만 활성화하는 방법
성가신 스타일의 경찰이 아닌 보안 경찰만을 위해 Rubocop을 사용하고 싶다면 😉 설정 방법은 다음과 같습니다. 먼저 install the gem이 필요합니다.
gem install rubocop
또는 Gemfile을 사용하는 경우...
gem 'rubocop', require: false
gem이 설치되면 홈 디렉토리에 있는
rubocop.yml
파일로 gem을 구성할 수 있습니다. 보안 중심 경찰을 활성화하려면 yaml 파일이 다음과 같아야 합니다 👇AllCops:
DisabledByDefault: true
Rails/OutputSafety:
Enabled: true
Security:
Enabled: true
Style/MutableConstant:
Enabled: true
그런 다음 실행만 하면 됩니다!
$ rubocop
기본 사용 체크아웃에 대한 추가 정보는 rubocop docs .
행복한 코딩! 😃
Reference
이 문제에 관하여(Ruby 보안을 향상시키는 쉬운 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/molly/one-easy-way-to-improve-your-ruby-security-21mc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)