問題タブ [security]
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.
security - PHPセッションセキュリティ
PHPで責任あるセッションセキュリティを維持するためのガイドラインは何ですか?ウェブ全体に情報があり、それがすべて1か所に到着する時が来ました!
forms - フォームベースの Web サイト認証の決定版ガイド
モデレーター注:
この質問は、現在スタック オーバーフローに適用されている話題性ルールを使用した質問と回答の形式には適していません。通常、コンテンツがまだ価値があるような質問には「歴史的ロック」を使用します。ただし、この質問に対する回答は積極的に維持されており、履歴ロックにより回答を編集することはできません。そのため、回答を編集できるように「wiki 回答」ロックが適用されています。通常、履歴ロックによって処理される話題性の問題が存在すると想定する必要があります (つまり、この質問は、スタック オーバーフローのトピックに関する質問の良い例ではありません)。
Web サイトのフォームベース認証
スタック オーバーフローは、非常に具体的な技術的な質問のためのリソースであるだけでなく、一般的な問題のバリエーションを解決する方法に関する一般的なガイドラインでもあると考えています。「Web サイトのフォームベース認証」は、このような実験の優れたトピックです。
次のようなトピックを含める必要があります。
- ログイン方法
- ログアウトする方法
- ログイン状態を維持する方法
- Cookieの管理(推奨設定を含む)
- SSL/HTTPS 暗号化
- パスワードの保存方法
- 秘密の質問の使用
- ユーザー名/パスワードを忘れた機能
- ナンスを使用してクロスサイト リクエスト フォージェリ (CSRF)を防止する
- OpenID
- 「私を覚えている」チェックボックス
- ユーザー名とパスワードのブラウザのオートコンプリート
- シークレット URL (ダイジェストで保護された公開URL )
- パスワード強度の確認
- 電子メールの検証
- フォームベースの認証についてさらに詳しく...
次のようなものは含めないでください。
- 役割と権限
- HTTP 基本認証
次の方法で私たちを助けてください:
- サブトピックの提案
- このテーマに関する優れた記事を提出する
- 公式回答の編集
security - アジャイル開発ショップでセキュリティをテストするためのベスト プラクティスはありますか?
アジャイル開発に関して、リリースごとにセキュリティをテストするためのベスト プラクティスは何ですか?
月刊の場合、毎月ペンテストをしているショップはありますか?
.net - .NET 難読化ツール/戦略
私の製品には、ASP.NET、Windows Forms App、および Windows Service という複数のコンポーネントがあります。コードの 95% 程度は VB.NET で記述されています。
知的財産上の理由から、コードを難読化する必要があり、これまで 5 年以上経過したバージョンの dotfuscator を使用していました。新しい世代のツールに移行する時が来たと考えています。私が探しているのは、新しい難読化ツールを探すときに考慮すべき要件のリストです。
私がこれまでに探すべきだと知っていること:
- シリアライゼーション/デシリアライゼーション。私の現在のソリューションでは、クラス データ メンバーを難読化しないようにツールに指示するだけです。これは、以前にシリアル化されたデータを読み込めないという苦痛が大きすぎるためです。
- ビルド プロセスとの統合
- ASP.NET での作業。過去に、.dll 名の変更 (ページごとに 1 つあることが多い) が原因で、この問題が発生することがわかりました。これは、すべてのツールが適切に処理できるわけではありません。
mysql - クエリを送信するときに何をエスケープする必要がありますか?
SQLクエリを実行するときは、文字列をクリーンアップする必要があります。そうしないと、ユーザーがWebサイトで悪意のあるSQLを実行する可能性があります。
私は通常、関数escape_string(blah)を持っています。これは次のとおりです。
\
エスケープ( )をダブルエスケープ()に置き換えます\\
。'
一重引用符( )をエスケープされた一重引用符()に置き換えます\'
。
これで十分ですか?私のコードに穴はありますか?これを迅速かつ確実に実行できるライブラリはありますか?
Perl、Java、およびPHPで適切なソリューションを確認したいと思います。
security - 私のウェブサイトがハッキングされました..どうすればいいですか?
今日、父から電話があり、彼の Web サイトにアクセスしている人々が 168 のウイルスを自分のコンピューターにダウンロードしようとしているとのことでした。彼はまったく技術的ではなく、WYSIWYG エディターですべてを構築しました。
彼のサイトを開いてソースを表示したところ、ソースの一番下の HTML 終了タグの直前に Javascript インクルードの行がありました。彼らはこのファイルを含めました(他の多くのファイルの中でも):http ://www.98hs.ru/js.js <--そのURLにアクセスする前にJAVASCRIPTをオフにしてください。
ということで、とりあえずコメントアウト。彼の FTP パスワードは 6 文字の長さの平凡な辞書の単語であることが判明したため、それがハッキングされた方法であると考えられます。彼のパスワードを 8 桁以上の単語以外の文字列に変更しました (彼はハントアンドペック タイパーであるため、パスフレーズを求めませんでした)。
98hs.ru で whois を調べたところ、チリのサーバーからホストされていることがわかりました。実際にメールアドレスも関連付けられていますが、この人物が犯人ではないかと疑っています。おそらく、ハッキングされた他のサイトだけです...
この種のことをこれまで扱ったことがないので、この時点で何をすべきかわかりません。誰にも提案はありますか?
彼は、webhost4life.com を通じてプレーンジェーンのセキュリティで保護されていない ftp を使用していました。彼らのサイトで sftpを実行する方法さえ見当たりません。彼のユーザー名とパスワードが傍受されたと思いますか?
コミュニティとの関連性を高めるために、Web サイトをハッキングから保護するための手順やベスト プラクティスは何ですか?
記録のために、ここに「魔法のように」彼のファイルに追加されたコード行があります (彼のコンピューターのファイルにはありません - 何もしないことを絶対に確認するためにコメントアウトしたままにしています)このページでは、ジェフはこれを防ぐと確信していますが):
security - Web フォーム用の控えめなキャプチャはありますか?
Web フォームに最適な目立たない CAPTCHA は何ですか? UI を含まない、非 UI チューリング テストです。Microsoft のNobot コントロールのような非 UI CAPTCHA の簡単な例を見てきました。ユーザーにいかなる形式でも質問をしないCAPTCHAを探しています。なぞなぞも、この画像にあるものもありません。
security - HTTP_REFERER を使用してサイトの内部へのユーザー アクセスをブロックする
HttpServer は制御できますが、そこにある ApplicationServer や Java アプリケーションは制御できませんが、これらのアプリケーションの特定のページへの直接アクセスをブロックする必要があります。正確には、適切なサーブレットに対して直接 GET/POST HTTP 要求を発行するフォームへのアクセスをユーザーに自動化してほしくありません。
そこで、 の値に基づいてユーザーをブロックすることにしましたHTTP_REFERER
。結局のところ、ユーザーがサイト内を移動している場合、適切なHTTP_REFERER
. まあ、それは私が思ったことでした。
.htaccess ファイルに次のような書き換えルールを実装しました。
サイトをナビゲートしていないが、クエリ文字列を使用して「servlet1」または「servlet2」サーブレットに直接 GET 要求を発行するユーザーへのアクセスを禁止することを期待していました。しかし、正規表現(servlet1|servlet2)/.+\?.+
がまったく機能しなかったため、私の期待は突然終わりました。
その表現を に変更したときは本当にがっかりし(servlet1|servlet2)/.+
ました。サイトをナビゲートするかどうかに関係なく、ユーザーがブロックされるほどうまく機能しました。
それで、私の質問は次のとおりです。アプリケーションを変更するアクセス/権限/時間がない場合、特定のページへの直接アクセスを持つ「ロボット」を許可しないということをどのように達成できますか?
linux - パブリック アクセス用の Linux Web サーバーを保護する
さまざまな Web テクノロジをホストする Web サーバーとして安価な Linux ボックスをセットアップしたいと考えています (PHP と Java EE が思い浮かびますが、将来的には Ruby や Python も試してみたいと考えています)。
Java EE アプリケーションを提供するために Linux で実行するように Tomcat をセットアップすることにはかなり精通していますが、このサーバーを開いて、作業中に使用できるいくつかのツールを作成できるようにしたいと考えています。オフィス。Java EE サイトの構成に関して私が経験したすべての経験は、外部ユーザーのためにページを保護することに集中しないように言われたイントラネット アプリケーションに関するものでした。
個人の Linux Web サーバーを外部トラフィックに対して開放するのに十分安全な方法でセットアップするためのアドバイスはありますか?
php - ランダム生成 PHP の改善
rand()
自分が何をしているのかを知っていて、サーバーにアクセスできる場合は、使用するだけで予測可能であることを私は知っています。
可能な限り予測不可能な乱数の選択に大きく依存するプロジェクトがあります。そこで、より良い乱数を生成できる他の組み込み関数またはユーザー関数の提案を探しています。
私はこれを使って小さなテストをしました:
結果が均等に分布していることがわかりました。各数値が生成される回数には奇妙なパターンがあります。