問題タブ [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.

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

security - バックボーン Js アプリ コードの表示をブロックする

Inspect element -> sources で表示されている backbone.js アプリ コードの表示をブロックできますか?

ビュー Html と css についてではなく、モデル データを保持するバックボーン ビュー ファイルについて話しています。コードはherokuにデプロイされています.herokuでコードの表示をブロックするアドオンはありますか?

またはそれをブロックするために含める必要がある追加の安全なjsはありますか?

ありがとう、ヴィジ

0 投票する
2 に答える
447 参照

c - getchar() と空白パディングによる安全なコーディング

このコードのチャンクは、より大きなプロジェクトの一部です。関連性があるのでお伝えします。すべての写真を追跡するために、小さな (コード単位の) データベースに取り組んでいます。後でプログラムを拡張して、すべての論文の引用を保存できるように設計しています。

良くも悪くも、固定幅のフィールドを持つ単純なフラット ファイル システムに落ち着きました。これはメモリの最も効率的な使用方法ではない可能性があり、ファイル サイズは大きくなりますが、いくつかの優れた利点があります: 区切り記号がないため、ファイルは適切な書式設定で簡単に人間が読み取れるままになり、単純な配列インデックスを使用して簡単に配列にアクセスできます。

特に最後の部分は私のスキルの範囲内にあるので気に入っています。このデータベースについての 1 つのことは、多くのエントリを作成できるようにする必要があるということです。ボトルネックは、メモリではなく、ディスク領域ではなく、ユーザー入力部分に現れるため、入力をすばやく簡単にすることに集中しています。

C でユーザー入力を取得するのは難しい場合があることを学びました。C の文字列処理ライブラリには、バッファ オーバーフローを生成するために悪用できる関数が多数あります。というわけで… このコードでは、Robert C. Seacord のSecure Coding in C and C++からのアドバイス、具体的には「文字列とバッファ オーバーフロー」の章を実装しました。

ここにリンクがあります: http://www.informit.com/articles/article.aspx?p=2036582&seqNum=5

Seacord は、fgets() を使用して入力行を処理することは、安全に行うことはできますが、パフォーマンスに制限があることを示唆しています。(私は速いのが好きですよね?) 彼はさらに、代わりに getchar() を使用することを提案しています。それが私がしたことです。

getchar() を安全に使用するための while ループの使用に関する彼の提案は次のとおりです。

以下の私のコードでは、それを微調整しています。

I/O で実行する必要があることがいくつかあります。まず、入力された入力が長すぎる場合は、切り捨てたいと思います。私が唯一のユーザーかもしれませんが、間違いを犯す可能性があります。2 つ目は、入力がフィールド幅よりも短い場合 (これは主にこのような場合です)、そのフィールドの右側にスペースを埋め込みたいということです。

それが私が抱えている問題です。それについては後ほど詳しく説明します。

この空白により、フラットファイルの見た目がきれいに保たれ、インデックス作成が非常に簡単になります。「Enter」キーを押して、次のエントリに順番に進む必要があります。コンピュータがデータを希望どおりにフォーマットしたことがわかっているからです。

(これは実際には、データを直接アクセスから保護する必要があるという EF Codd の原則の大まかな実装です。すべてをチェック、洗練、解析などしてからストレージに格納する必要があります。これにより、データの破損が防止されます。)

このコードでは、最後の部分をすべて切り捨てました。これは単なるノイズだからです。問題を引き起こしている部分だけでなく、あらゆる種類の関係のないプログラム全体を投稿している他の人のコードを読もうとするのはうんざりです。 . 同時に、選択、コピー、貼り付け、保存、およびコンパイルが可能な完全なプログラムを投稿したいと考えています。だから私はここでそれをしました。コメントと小さなチェックを残しましたが、コメントを外してすべてが正常であることを確認してから、もう一度コメントアウトします。これは可能な限り単純なコードではありませんが、単純すぎるという有名なアインシュタインの引用は何ですか?

とにかく、少し長いことは承知していますが、私が使用していた設計原則をスケッチしたかったのです。有益な批評があるかもしれません。私は地獄がばかげたアプローチを取っている可能性があると確信しています。

私が抱えている正確な問題は、これらのフィールドに正確に適切な量の空白を埋め込む方法です。

解決策を見つけました。並べ替え。

しかし、それは私にはハックのようです。

私がやろうとしていることを達成するための、より効率的、高速、またはエレガントな方法があると思うだけです。「ハック」部分では、2 番目の印刷関数を呼び出し、文字数と maxlength 定数の差を使用して、データの後に空白を追加しています。これについては、27 ~ 39 行を参照してください。それは機能します…しかし?

配列を直接パディングすることはできませんか?

それを理解することはできません!

コードは次のとおりです。

ところで、投稿する前に、これに対する答えを本当に探しました。遠慮なく私をノックアウトしてください。しかし、誰もがわずかに異なる問題、特にデータ保護とバッファ オーバーフローに対する無頓着な問題を解決しようとしているように見えました。したがって、これは重複した質問ではないと思います。

[編集] これが修正されたコードです。Joachim のソリューションと、切り捨てられた文字列を分離する if-else ループが組み込まれています。まだベストではありませんが…

0 投票する
2 に答える
234 参照

c++ - マルチバイトからワイド文字への変換後、一時コピーがメモリに存在する

安全な文字列をユニコード文字列に変換しようとしています。安全なデータを処理する必要があるため、使用後にメモリをクリアする必要があります。API を unicode に変換してみました。

  • MultiByteToWideChar()
  • A2W()
  • mbstowcs_s()

Unicode 文字列への変換は、上記のすべての API で正常に機能しました。上記の操作の後、o/p Unicode 値を含め、保護されたすべてのデータ メモリをクリアしました。しかし、この後にメモリをダンプしている間、Unicode 文字列のコピーがメモリに残ります。安全なデータを処理するすべての変数がSecureZeroMemory( () API を使用して) クリアされていることを確認しました。上記の API で使用される一時的なコピーであると思われます。ユニコード値が必要で、データを保護する必要があります。どうすればそれを達成できますか?

コード スニペットは以下で共有されます。

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

php - PHP でのセキュア セッション

ソルト (ランダムな文字列) を作成し、それをユーザー ID 文字列に追加し、md5 (または他の暗号化) して、同じ結果を Cookie およびセッション変数として保存し、安全なページに php スクリプトを含めて作成できますか? Cookie 変数とセッション変数の両方が一致することを確認しますか?

これは安全でしょうか?

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

c# - Windows Phone と Azure 間の安全な接続

私は社会的なアイデアを開発しました。whatsapp、instagram、または同様のモバイルアプリケーションなど。Windows Phone で最初のバージョンをリリースすることを決定します。もちろん、最適なクラウドの選択肢は Azure です。Microsoft とその製品を信頼しています。

問題は、「モバイル アプリを安全に保ち (安全なコードのアドバイス、アンチ逆コンパイラー?、ソース コード、クラス、ファイルを暗号化する?)、アプリの安全な Azure 接続を取得するにはどうすればよいか?」ということです。

Microsoft または Azure は私たちに何を提供しますか? プライバシーとセキュリティは、今のところ私の最初の目標です。

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

android - Android セキュア、文字列の代わりに使用するもの

私はAndroidの初心者で、アプリを作成していて、アプリの安全性に焦点を当てたいと思っています.このリンクを見つけました.使用する。" その後、「機密情報を保持するためにJavaのStringクラスを使用しないでください。代わりに、char配列またはバイト配列を使用してください。これは、Stringが不変であるためです」と述べています。

私のアプリには、次のようなコードがあります (このコードは、ユーザーが入力した PIN をチェックし、内部ストレージ内の別の PIN と比較するだけです):

プレビューリンクで読んだことについては、代わりに String を使用しませんでした。StringBuilder は可変であるため、StringBuilder を使用します。使用後、値を「stringBuilder = new StringBuilder("");」に変更します。 [] editText を char[] 変数に保存する方法や、ファイルに保存された PIN を char[] 変数に保存する方法がわからず、char[] を使用する方法の例が見つからなかったためです。それらのケース。

私の質問は次のとおりです: このケースは Android アプリに対して安全ですか、それとも char[] 変数に変更する方が良いですか?, StringBuffer クラスは Android に対して安全ではありませんか? editText 値を char[] に保存するにはどうすればよいですか? ファイルを char[] 変数に保存するにはどうすればよいですか?

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

php - ユーザーがIDの所有者でない場合、IDプロファイルページを保護し、データを表示しない方法

私はウェブサイトを開発しています。ログイン、登録、プロフィールページがあります。ユーザーがログインすると、ページにリダイレクトされますprofile.php?id=1。別のユーザーがid=2ログインしていて、2 を 1 に置き換えたとします。PHP を使用してユーザー 1 に対応するデータを表示しないようにページを保護するにはどうすればよいですか。

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

php - PHP の定義済み関数「mysql_entities_fix_string」が呼び出されない

簡単な PHP ページをテストしようとしています。関数「mysql_entities_fix_string」を使用して悪意のある入力を除外していますが、プログラムはそれを呼び出すことができません。したがって、$usernameP または $passwordP で値が取得されません。誰でも何か提案できますか?