Скрытие XML-кода в исходном коде view

#php #xml #privacy

#php #xml #конфиденциальность

Вопрос:

Я должен отправить XML-запрос для восстановления данных с удаленного сервера и проанализировать его с помощью PHP. Это многое, что мне удалось сделать … вроде того. Проблема в том, что XML, который я получаю обратно с удаленного сервера, выглядит примерно так:

 <info user="user" password="password" session="session">
    <data value="8" />
    <data date="..." />
  

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

Вот код, который я использую для восстановления и анализа данных:

 <?php 

$url = 'http://www.whereigetmyxml.com';

$ch = curl_init();     

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  

curl_setopt($ch, CURLOPT_URL, $url);  

$result = curl_exec($ch);  

curl_close($ch);  

echo $result; 

$xml = simplexml_load_file($url);

$myData = $xml->data[1]['date'];
echo $myData;

?> 
  

Спасибо!

Комментарии:

1. почему вы должны записывать XML в исходный код вашей страницы? Почему вы не можете просто запросить данные, обработать их, а затем вывести только то, что необходимо? Пожалуйста, уточните ваш сценарий.

2. Как вы отправляете данные? Насколько я понял, вы отправляете и анализируете на стороне сервера (php), поэтому вам не нужно выводить его. Или вы запрашиваете это в коде на стороне клиента (javascript)? Пожалуйста, предоставьте какой-нибудь код, чтобы мы могли увидеть, что вы делаете неправильно. С уважением,

3. Это хороший вопрос… Тогда я, вероятно, делаю это неправильно. Я сохраняю нужные мне значения в качестве переменных во включаемом файле, используя simplexml, а затем вызываю include из основного файла и повторяю сохраненные переменные… но в исходном коде я получаю весь xml-код из запроса. Разве я не так должен это делать?

4. @Jane, ну, если ты не хочешь, чтобы XML отображался эхом, тогда я бы сказал, да, это не то, что ты должна делать. Можете ли вы показать часть своего кода и объяснить, для чего вы его используете или какими вы ожидаете результатов?

5. @Jane показанный вами фрагмент не должен выводить ничего, кроме атрибута date второго элемента данных. Смотрите codepad.org/N616ShCG — должно быть, в вашем скрипте происходит что-то еще, что выводит весь XML.

Ответ №1:

Похоже, вы выполняете два запроса:

Это загружает XML и выводит все это:

 $ch = curl_init();     
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_URL, $url);  
$result = curl_exec($ch);  
curl_close($ch);  
echo $result;
  

Это загружает его снова и выводит только выбранную часть:

 $xml = simplexml_load_file($url);
$myData = $xml->data[1]['date'];
echo $myData;
  

Первая часть извлекает весь XML и его echo. В этом нет необходимости, и его можно удалить.

Комментарии:

1. приятно помочь пользователю, но это не ответ на заданный вопрос, это должен быть комментарий, а не ответ

2. мне кажется, что это решение его проблемы «они увидели бы все вышеперечисленное code…is есть какой-нибудь способ, которым я могу это скрыть?». Это первая часть, в которой echo содержит весь xml

Ответ №2:

Если кто-то выполняет «Просмотр исходного кода» в браузере, он не видит PHP-код, только HTML, который генерирует PHP. На самом деле это не должно быть проблемой.

‘View Source’ относится к исходному коду HTML, а не к исходному коду, который его создал. В наши дни это на самом деле довольно неудачное название, ‘source’ слишком двусмысленно; вероятно, его следует называть ‘View Markup’ или что-то в этом роде, браузер никогда даже не увидит реальный ‘source’.

Ответ №3:

Если вам нужно отправить данные клиенту (браузеру), клиент всегда может их увидеть.

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