2010-11-23 2 views
0

Я хочу знать, что такое безопасный метод отправки php-данных в js. Я нашел путем поиска, чтобы запустить php-теги в js и передать данные таким образом.Что такое безопасный способ отправки php-данных в js?

var jsVar = "<"+"?php echo $phpVar;"+"?"+">"; 

Но это опасный способ передачи данных, подверженных угрозам. Я хочу знать, какой альтернативный способ сделать то же самое, что и в безопасности.

+1

Я бы сказал, что JSON, если вы делаете вызов AJAX для извлечения переменной. – 2010-11-23 08:11:48

+0

`@ Jorge` Это не так безопасно, но это легко и работает. – Fred 2010-11-23 08:14:03

ответ

3

Я не совсем уверен, что вы имеете в виду под «безопасным», но если я правильно понимаю ваш вопрос, вы можете вводить данные из PHP непосредственно в JavaScript с помощью json_encode:

var jsVar = <?php echo json_encode($phpVar) ?>; 

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

var jsVar = "<?php echo '<?php echo $phpVar ?>' ?>"; 

Я не могу себе представить, что это то, что вы имеете в виду, хотя, как я не могу подумайте о причине, желающей это сделать :)

1

json_encode - лучший способ отправить назад.

echo json_encode($phpVar) 
3

Я хочу знать, что альтернативный способ сделать то же самое, что и в безопасности.

Я не уверен, что вы подразумеваете под «безопасным», но вы должны предположить, что любой отправляемых вами данные в браузер клиента могут и будут рассматриваться достаточно мотивированным пользователем. Вы можете защитить данные от посторонних глаз в пути (используя SSL, например, https), но браузер пользователя клиента должен иметь возможность читать данные, что означает, что клиент может тоже.

Вы можете слегка поднять планку (например, путем обфускации данных, которые вы вставляете на страницу, путем подачи их только в ответ на вызов Ajax и т. Д.), Но с сегодняшними «сетевыми и веб-инструментами» (которые все чаще внедряется в браузерах), достаточно мотивированный пользователь будет обойти меры предосторожности, которые вы предпринимаете (перейдя через свой код и просматривая переменную, в которой вы храните де-обфузированные данные или данные из ответа Ajax, например) ,

Если вы хотите поднять планку дальше, вам может потребоваться подключаемый модуль, такой как Flash или Java, и отправить запутанные (или даже зашифрованные) данные на флеш-приложение/Java-апплет и де-обфускать/расшифровать его в приложении/апплет. Но это просто поднимает планку до уровня кого-то с инструментами отладки для Flash или Java.

Возможно, не стоит беспокоиться, я готов поспорить, что у вас есть лучшие дела. :-)

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

1

Если ваши данные поступают из вашей базы данных, это довольно безопасно. Проблема возникает при сохранении и повторном отображении данных, введенных пользователем. В этом случае вам необходимо убедиться, что в данных нет встроенной функции javascript. Удаление или экранирование «" {}(); + -/*, и его шестнадцатеричные эквивалы должны это сделать.

Вы можете использовать json_encode как предложено в answer это

Смежные вопросы