問題タブ [brakeman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2218 参照

ruby-on-rails - Brakeman に特定のパスを無視させる方法

Rails プロジェクト用に Brakeman を構成しようとしていますが、特定のディレクトリとファイルを無視したいと考えています。除外するパスを指定するオプションが見つかりません。これが可能かどうか誰にもわかりますか?

0 投票する
1 に答える
1292 参照

ruby - 非 ASCII-8BIT スクリプト内のエスケープされていない非 ASCII 文字

私はこの正規表現を持っています:

# -*- encoding : utf-8 -*-私のファイルで)、私のアプリケーションでエラーなしで実行されます。gem を使用しbrakemanてアプリケーションをチェックすると、次のように返されます。

1) 警告が表示されるのはなぜですか? (括弧文字がエスケープされていませんか?)
2) 警告を無視すると何か悪いことが起こりますか?
3)同じ目的を達成するが、この問題が発生しないようにコードを変更する方法はありますか?

0 投票する
1 に答える
506 参照

ruby - ruby exec コマンドインジェクション (防御!)

プロジェクトで Brakeman gem を実行しています。実行中のいくつかの exec コマンドについて不平を言っています。

現在のコード:

Process.fork {exec "pdftk #{uncrypted_pdf_file} output #{pdf_file} owner_pw #{password} allow printing"}

Brakeman は、コマンド インジェクションの可能性があることを示唆して不平を言っています。たとえば、exec を呼び出すいくつかの異なる組み合わせを試しました。

Process.fork {exec "pdftk", uncrypted_pdf_file, " output #{pdf_file} ", "owner_pw #{password}", "allow printing"}

しかし、ご想像のとおり、各引数は順番に pdftk に渡されるため、失敗します。

ワンショットでコマンドを呼び出し、コマンド インジェクションから保護する方法はありますか。私たちの特定のケースでは、すべての変数を制御するのでとにかく安全ですが、正しい方法を知っておくとよいでしょう。

0 投票する
1 に答える
2035 参照

ruby-on-rails-4 - only_path によって修復されない保護されていないリダイレクト

Rails 4 アプリケーションがあり、Brakeman を実行すると、create アクションで保護されていないリダイレクトが (正しく) 識別されます。ただし、 only_path: true ( Brakeman Railscastのように) を追加しても、警告は解決されません。

結果:

これはなぜでしょうか?Brakeman はまだどのようなリスクを特定していますか?

0 投票する
3 に答える
3371 参照

ruby-on-rails - Brakeman レポート - ファイル名として使用される直接モデル属性

次のエラーを表示しているブレーキマン、ファイルはクリップで管理されています。私のコントローラーで

asset_file ||= AssetFile.find(params[:id])

if asset_file
// ファイルをダウンロード
send_file asset_file.uploaded_file.path , :type => asset_file.uploaded_file_content_type
else
flash[:error] = t('document.mind_your_asset_file')
redirect_to root_url
end

ここに画像の説明を入力

0 投票する
0 に答える
292 参照

mysql - Railsで動的SQLを構築する際にSQLインジェクションを防ぐ方法

動的 SQL ステートメントを作成しActiveRecord::Base.connection.select_values、クエリが少し複雑であるため (複数のテーブルから複数の group by および select 列を使用して 3 ~ 4 個のテーブルを結合する)、より迅速な応答が必要であるため、使用して実行しています。SQL インジェクションを特定するためにBrakemanセキュリティ スキャナーを使用しています。これらの動的クエリのほとんどは、SQL インジェクションに対して脆弱であるとマークされています。

Rails内部メソッドのいくつかを使用して、単一引用符の動的SQLステートメントで使用されたパラメータを手動でクリーンアップしようとしました例:文字列をエスケープ(単一引用符)するために、sanitize_sql_for_conditions他の同様の方法を試しましたが、BrakemanはまだそれらをSQLインジェクションに対して脆弱であると識別していますまたは、一重引用符だけをエスケープしても SQL インジェクションの問題は解決しませんか?

動的 SQL の構築中に SQL インジェクションを処理するより良い方法はありますか?

Rails 2.3 ruby​​ 1.8.7 を使用しています

0 投票する
1 に答える
3824 参照

sql - Rails Brakeman の SQL インジェクションの警告

モデルにスコープがあります:

したがって、breakman レポートを実行すると、次の警告が表示されます。

だから私は次のことを試しました:

'SQLの前後に(アポストロフィ)を追加するため、これはうまくいきません。したがって、これをいくつかの結果を返すクエリの一部として使用し、このスコープを適用すると、間違った SQL が生成されます。

私もこれを試しました:

ステートメントも作成しません。そして、機能せず、言及する価値さえない他のいくつかのものを試しました。これを修正する方法を知っている人はいますか?

0 投票する
1 に答える
61 参照

ruby-on-rails - Brakeman によると、なぜこの XSS なのですか?

これがセキュリティ上の問題である理由を説明してもらえますか?

言語を切り替えることができるように、プロジェクトに単純なパーシャルを追加しようとしています。このパーシャルが各コントローラーと対話したり、ユーザーを別のページに切り替えたり、有効なすべての有効なパラメーターを認識したりする必要はありません。

0 投票する
1 に答える
506 参照

ruby-on-rails - Rails 4.1.0 でのパス トラバーサル攻撃

file access次のコードに対して警告が表示されます。

警告は次のとおりです。

ユーザー提供の入力に、ファイル アクセス API に渡される「..」または同様の文字が含まれている可能性がある場合、意図したサブディレクトリの外部にあるファイルへのアクセスが発生します。

私はparamsをサニタイズしようとしました:

しかし、これはハキリ警告の警告には影響しないようです。