1

予防策として、PHPを使用して、ユーザーを指定されたURLにリダイレクトするための簡単に再利用/変更可能な手段を作成したいと考えています。

私は通常のphpヘッダーリダイレクトを持っています:

<?php

   header( 'Location: http://www.stackoverflow.com/' ) ;

?>

ただし、このファイルは多くのディレクトリに配置されるため、作業が楽になり、外部ファイルからURLが抽出されます。

http://www.stackoverflow.com/url.xml

ドメイン自体を自動的にキャプチャする別の方法がない限り、これにはもちろん問題のWebサイトのURLが含まれますか?これはよくわかりません。

誰かがこれがどのように行われるかを示したり、最良のアプローチを提供したりするのに十分親切でしょうか?

ありがとうございました。

4

2 に答える 2

1

@adamと同じアプローチで考えていましたが、攻撃者から読み取る可能性があるため、ファイルからURLを抽出することはお勧めしません。それらを変数、配列、またはその他のデータ構造としてphpファイルに含めることをお勧めします。

config.inc.phpというファイルにURLを1回保存します。

<?php

define('USER_PATH', '/redirect/user/path');
define('ADMIN_PATH', '/redirect/admin/path');

?>

次に、phpファイルで:

<?php
include 'config.inc.php';
header( "Location: http://{$_SERVER['HTTP_HOST']} . USER_PATH ) ; //or whatever variable you want to use to redirect.
?>

セキュリティ上の問題のために一部のフォルダをリダイレクトしたい場合は、Apacheのhtaccessを使用してリダイレクトできます。これをルートフォルダに置き、リダイレクトごとに必要な数だけ最後の行を追加します。ここに記載されている各フォルダーには、サーバーで実行されているスクリプトからのみアクセスできます。
これを使用すると、HTTPを使用するすべてのアクセス要求がリダイレクトされます。したがって、これは、含まれるスクリプトを含むディレクトリに対してのみ機能します。つまり、インデックスを表示してはならない画像ディレクトリでは機能しませんが、画像にはアクセス可能な状態を維持する必要があります。

RewriteEngine on
RewriteBase /
RewriteRule ^includes/(.*) http://www.stackoverflow.com/ [R=301,L]
RewriteRule ^includes/(.*) http://www.stackoverflow.com/ [R=301,L]

これに慣れていない場合は、http://www.htaccessredirect.net/を使用できます。

于 2013-01-05T15:13:02.267 に答える
0

URLを含むファイルが管理していないドメインにある場合、セキュリティ上のリスクがあります。

代わりに、URLを次のファイルに1回保存しますconfig.inc.php

<?php

define('REDIRECT_URL', '/redirect/path');

?>

次に、それをプロジェクトに含めます。

<?php

include 'config.inc.php';

echo REDIRECT_URL;

// /redirect/path

?>
于 2013-01-05T15:07:00.197 に答える