0

javascript を使用して html href から文字列を安全にエンコードして渡し、php プログラムへのリンクを作成するには、どのような一連の手順が必要ですか。

JavaScript で URL を設定

// encodes a URI component.
path = "mypgm.php?from=" + encodeURIComponent(myvar) ;

PHPで:

// get passed variables
$myvar = isset($_GET['myvar']) ? ($_GET['myvar']) : ''; 

// decode - (make the string  readable)
$myvar = (rawurldecode($myvar));

// converts characters to HTML entities (reduce risk of attack)
$myvar = htmlentities($myvar);

// maybe custom sanitize program as well?
// see [http://stackoverflow.com/questions/2668854/php-sanitizing-strings-to-make-them-url-and-filename-safe][1]
$myvar = sanitize($myvar);
4

2 に答える 2

0

最初の2行でいいと思います。テキストとして出力する必要がある場合は、htmlentities を使用します。

于 2010-04-20T02:37:23.590 に答える
0

コードを見ると、本当に必要なのは次のとおりです。

$myvar = !empty($_GET['myvar']) ? $_GET['myvar'] : '';

さらに、PHP は自動的に URL をデコードします。個人的には、データを出力するときにhtmlentities()orを実行することを好みます。htmlspecialchars()

<?php echo htmlentities($mydata); ?>

データをエスケープまたはサニタイズする必要があるのは、SQL クエリを作成している場合のみです。

$data = mysql_real_escape_string($mydata);
$query = "SELECT * FROM table WHERE stuff = '$mydata'";

これにより、SQL インジェクションが防止されます。ユーザー入力をフォーマットしたり検証を実行したりしない限り、他の種類のサニタイズを行う必要はありません。

お役に立てれば!

于 2010-04-20T17:42:16.533 に答える