問題タブ [secure-coding]
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.
authentication - Cookie/セッション変数がどのように相互作用してユーザーセッションを検証するかを理解したい
---私は Cookie/セッション ID を実験してきましたが、概念を理解するのに少し苦労しています。私は Debian ディストリビューションに取り組んでいます。Burp を使用して要求/応答をキャプチャ/変更します。私が知っていることは以下です。
を。Cookie は /root/.mozilla/firefox/pya18ecc.default/cookies.sqlite のクライアント マシン データベースに保存されます。moz_cookies テーブル内。データベースへのアクセスに sqlite3 を使用しています。
b. セッション変数はサーバーの /var/lib/PHP5 に保存されます。
サーバー上の PHP コードは以下のとおりです。
- request(1)を送るとこんな感じ。
リクエスト(1)
- 応答 (1) はログイン ページ (基本 HTTP 認証) です。
レスポンス(1)
----ここまで、セッション ID や Cookie の交換はありません。(私が間違っている場合は、プロンプトを表示しますか?)
- 私はユーザー名とパスワードで応答し、request(2) は
リクエスト(2)
---- 上記のリクエストを転送すると、応答を転送する前に /var/lib/PHP5 でセッション ID: cl5mi7tbhdnobpv8kkau7thjo6 を受け取ったことがわかります(2)。これは、サーバーが同じものを作成し、応答で転送する準備ができているためです (2)
- 応答(2)は
レスポンス(2)
----SELECT * FROM moz_cookies を確認すると、クライアント m/c に保存されている Cookie が表示されません。では、彼らはどこで救われているのでしょうか? (これは私の最初の質問です)
- 次に、セッション変数「cl5mi7tbhdnobpv8kkau7thjo6」をサーバーから削除し、クライアントのブラウザーで再度更新ボタンを押しました。リクエスト(3)/レスポンス(3)は以下のとおりです
リクエスト(3)
レスポンス(3)
-----これで、サーバーは /var/lib/PHP5 の下に設定された同じセッション変数を再び取得しました。サーバーはセッション変数を認識すべきではありませんか? また、保存された Cookie が原因でこれが発生している場合、なぜ moz_cookies テーブルの下でそれらを見ることができないのですか ..... 説明してください ?(これは私の 2 番目の質問です)
java - JAVA - SQL インジェクションの可能性
だから私はこのコードスニペットを持っています:
教育目的で、入力がどこから来ているかを知っていても、SQL ステートメントは SQL インジェクションから保護されていますか?
java - java.io.File.createTempFile 使用時の Veracode Insecure Temporary File エラー
一時ファイルを作成し、そこにデータを保存する必要があります。そのために次のコードを作成しました。
完全に機能しますが、このコードをVeracodeに送信すると、「安全でない一時ファイル (CWE ID 377)」というエラーが表示されます。SecureRandom
を使用すると、攻撃者が一時ファイル名を予測できなくなると思いました。
Veracodeを不幸にせずに一時ファイルを生成する正しい方法は何ですか?
java - Appscan ソース エディション - SQL インジェクション
Java Secure Coding に Appscan ソース版を使用しています。アプリケーションで SQL インジェクションが報告されています。問題は、クエリをコードで動的に生成しているため、準備済みステートメントを使用できないことです。代わりに、 e を使用する必要がありEsapi.encoder().encodeForSql(new OracleCodec(), query)
ます。AppScan は、これを SQL インジェクションの問題を軽減するものとは見なしません。
このコードはさらに機能しませんESAPI.encoder()
この問題を解決するにはどうすればよいですか?
asp.net - ASP.NET で開発者から ConnectionString を隠す
上司は私に仕事を与えました。彼は、オフィスにいる ASP.NET および C# の開発者がライブ データベースから離れることを望んでいます。そのためには、すべての ASP.NET プロジェクトから参照される dll を作成し、dll がプロジェクトに SqlConnection オブジェクトを与える必要があります。 、しかし、開発者はデバッガーまたはその他の方法で接続文字列を読み取るべきではなく、データ アクセスの他のすべてのプロパティはユーザーに対して非表示にする必要があります。非表示の接続文字列を持つ接続オブジェクトを提供します。
どうすればこのタスクを達成できますか?
python - Python のセキュア コーディング ガイドライン
CERT セキュア標準 (例: https://www.securecoding.cert.org ) を見ると、C、C++、Java、さらには Perl についても、良いコードと悪いコードがどのように見えるかの素晴らしい例を含む特定の標準がありますが、そうではありません。パイソン。Python固有の標準はガイドラインであり、できれば例が利用可能ですか?
http://www.pythonsecurity.org/は、Python 自体と、これらを解決するための代替 Python バイナリの構築に関するセキュリティ上の懸念に焦点を当てているようです。崇高だが、最近は積極的ではない大義。何をすべきでなく、何をすべきかについて、開発者にガイダンスを提供するものを探しています。
java - Java (または Scala) での上向きパス トラバーサルのフィルタリング
特定の「ルート」パスの上方../
へのトラバースからファイル パス API 入力を保護するために、上向きのディレクトリ トラバーサルの他のすべての複雑な形式など、特別なトラバーサル シーケンスを含むパスを除外できる標準ライブラリ メソッドはありますか?
ルート フォルダー値メンバーを含むクラスと、再帰的に削除するパスを受け入れるメンバー関数があります。私の目標は、この API に提供された入力パスを除外することで、この API を安全にすることです。これは、ルート フォルダーの値より上のパスに変換されます。目的は、このクラスを自由に使用してルート パスの下にあるファイルを削除することですが、ルート パスより上のファイルには決して触れないようにすることです。
これは、ブロードパス トラバーサル攻撃に似ています。
制限が厳しすぎる (つまり、偽陰性になる可能性がある) メソッドは、これが物事を単純化する場合、私の特定のユース ケースには問題ないかもしれません。日本酒は理論的にはここで機能する可能性があります)。
python - pymysql を使用した Python 辞書とパラメータ化された MySQL (安全なコーディング)
私はPythonでデータベース駆動型コーディングを行うことに非常に慣れていません..そしてPythonも同様です。ディクショナリ出力を取得し、それをパラメータ化して (SQL インジェクションを回避するため)、出力を mysql データベースの個別の列に配置するコードを作成しようとしています。コードが実行されて出力されると、パラメータ化などで明らかに何か間違っていることがわかります。これは主に私が助けを必要としているものです。
辞書の出力は次のとおりです。
コードは以下のとおりです。
データベースの構造は次のとおりです。
ミックスから try/except を取り出すと、次のトレースバックが表示されます。