#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:
Если вам нужно отправить данные клиенту (браузеру), клиент всегда может их увидеть.
Если вы отправляете пароли обратно клиенту, и это проблема безопасности (похоже на то), вы должны изменить способ работы вашего приложения, а не придумывать способ скрыть его от пользователя (что теоретически невозможно).