безопасно кодировать и передавать строку из ссылки html в программу PHP - PullRequest
0 голосов
/ 20 апреля 2010

Какая серия шагов потребуется для безопасного кодирования и передать строку из html href, используя javascript для создания ссылки на программу 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 [/2033916/ochistit-stroki-chtoby-sdelat-ih-bezopasnymi-dlya-url-i-imeni-faila][1]
$myvar = sanitize($myvar);

Ответы [ 2 ]

0 голосов
/ 20 апреля 2010

Глядя на ваш код, все, что вам действительно нужно, это:

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

Помимо этого, PHP автоматически декодирует URL. Лично я предпочитаю делать htmlentities() или htmlspecialchars(), когда я иду к выводу данных, т.е.

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

Единственный раз, когда вам конкретно нужно экранировать или дезинфицировать данные, это если вы создаете запрос SQL:

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

Это предотвратит внедрение SQL. Если вы не форматируете пользовательский ввод или не выполняете проверку, нет необходимости выполнять другие виды очистки.

Надеюсь, это поможет!

0 голосов
/ 20 апреля 2010

Я думаю, что первые две строки должны быть в порядке. Вы бы использовали htmlentities, если и когда вам придется выводить его как текст.

...