1

LANからのみアクセスできるウェブサイトを開発しています。私はまだそれを可能な限り安全にしたいと思っています。

Webの観点からは、すべてのPHPファイルにSESSIONチェックを追加し、準備されたmysqliステートメントを使用し、HTTPSを使用するだけで十分ですか?

具体的には次のとおりです。

私はこれですべてのPHPページをチェックしています:

if(!isset($_SESSION['login']) || $_SESSION['UA'] != $_SERVER['HTTP_USER_AGENT'] || $_SESSION['IP'] != $_SERVER['REMOTE_ADDR'] || time() - $_SESSION['timeout']>=600){
session_unset();
session_destroy();
header('Location:index.php');

念のため、すべてのページでセッションIDも再生成します。そのため、ユーザーのユーザーエージェント、IPアドレス、アクティビティタイムアウト、およびセッション変数「ログイン」を確認しています。

mysql接続では、セキュリティとパフォーマンスのために主にプリペアドステートメント(mysqli)を使用します。プリペアドステートメントを使用しない、または使用できない場合は、クライアントデータを処理するときに常にreal_escape_string()を実行します。

チェックを入れて、HTTPSのみを許可します$_SERVER['HTTPS'] = "on"

サーバーは、PHPSSIDを除いてCookieを設定することはありません。

これが私のウェブサイトを安全にするために私ができるすべてですか、それとも他に何かありますか?Webサイトを保護する方法をWeb全体で見つけましたが、1つの場所には何もありませんでした。そのため、ここで質問しています。

4

4 に答える 4

1

この質問のためのより良いサイトはhttps://security.stackexchange.com/かもしれません

LAN Webサーバーの方が安全ですが、防弾ではないことを知っておいてください。クライアントマシンは、LAN環境でのセキュリティの不安定さの主な要因のひとつになる可能性があります。特に、クライアントマシンが外部のインターネットにアクセスでき、外部のインターネットにさらされている場合はなおさらです。ネットワークの盗聴中間者攻撃などにさらされたままにしておきます。

これが安全なWebアプリケーションとWebサービスを構築するためのガイドです

于 2012-10-31T14:47:52.270 に答える
0

攻撃面を減らす必要があります。

要求するために PHP ファイルが開いているようです。あなたが知っているファイルの場合、これは、それらを「保護」するためにコードチャンクを上に書く場合です。

代わりに、これらすべてをプライベート ディレクトリに移動し、index.php. これが唯一のポイントであるため、中央の場所でリクエストを許可する必要があるかどうかを検証できます。つまり、保護するファイルを 1 つ忘れることはなく、さらにチェックを追加したい場合は 1 か所で状況を改善できます。

PHP ファイル (Apache HTTPD) を使用した構成例:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

$_SERVER['REQUEST_URI']PHP スクリプトでは、 や など$_SERVER['QUERY_STRING']の特殊変数を使用して URI/URL を取得できます。

于 2012-10-31T15:29:45.240 に答える
0

ユーザーが作成したデータが有効であること、またはユーザーが提供する必要があるものであることを確認し、ユーザーが提供したデータまたは他の誰かが提供したデータを再表示する必要があるかどうかを確認してください (つまり、 db を後で) htmlenties を使用して、JavaScript がデータ内で機能しないようにしてください。データを JavaScript で入力している場合は、代わりに addslashes を使用してください。あなたが言ったことの多くも非常に良いです。

ランダムな補足として、彼らがあなたに与えているセッションIDが有効なセッションIDであることを検証します。つまり、^ [a-zA-Z0-9] {26,40} $

于 2012-10-31T13:55:43.907 に答える
0

Web サーバーの構成では、特別な予防策として、LAN 以外からのすべてのリクエストをブロックできます。

それ以外は十分すぎるようです。

于 2012-10-31T13:49:53.307 に答える