Возник вопрос, безопасно ли сохранять в файл сформированный посредством JavaScript документ XML, Учитывая, что он передается через hidden поле формы. Т.е.: 1. JS формирует некий текст (new_XML) 2. передает их в INPUT HIDDEN: HTML: <form name="post"> <input type="hidden" name="content" id="content" value=""> </form> [js]document.post.content.value = new_XML;[/js] 3. при отправке формы выполняется PHP скрипт по сохранению этого текста как файла: PHP: <? $content = $_REQUEST['content']; $filename_xml = $root_path . 'filebase/xml/'. $_id . '_document.xml'; $fp = fopen($filename_xml, "w"); $result = fwrite($fp, $content); fclose($fp); ?> Почему через INPUT? т.к. это лишь часть отсылаемой формы. Одолевают сомнения, что в момент передачи формы поле может быть подменено. Как безопасно проверить (во время выполнеия PHP скрипта, что передан именно тот контент? Например на наличие какой нибудь вредоносной вставки в XML документ. PS Может быть есть какие то стандартные методы проверки XML?
Ввести "свой проверяемый" первый параметр в xml и при получении соответственно проверять его наличие, это как проверить то ли мы получаем, а далее как обычно работа по безопасности.
Что мешает оставить "свой проверяемый" первый параметр в xml и изменить что-то другое? Можно конечно хэшировать xml строку и посылать результат хэша на сервер Ajax'ом. Но это тоже слабая защита (пока не разберут js и не поймут, что это такое посылается). Я бы наверное посылал значения, на основе которых формируется xml. И формировал бы результат уже на сервере.
Именно это я и имел ввиду, что структура остается неизменной, но в тело докумета злоумышленник внедрит свой код HTML: <? xml.... ?> <document> [color=green]< передаваемое содержимое >[/color] [color=red]< Внедренное содержимое, например какой то JS >[/color] </document> Увы, но объём значений может быть достаточно большим, и формируется множеством циклов, в зависимости от множества разных условий. 1. "именно тот", значит именно тот который отдал JS и вложил в поле формы, а не подменённый на какой то другой. 2. Это KML, то есть XML для Google Map и Google Earth. На самих картах, насколько я знаю, выполнение скриптов запрещено, т.е при выводе ничего страшного не ппроизойдёт. Но, для скачивания пользователями им дается прямая ссылка на этот файл, да и с самих Google карт скачивание производится именно по прямой ссылке. Соответственно и возникает вопрос о безопасности на стороне клиента скачавшего файл. Для примера, вот ссылка на тестовый вывод KML: http://maps.google.com/?q=http://www.ve ... /5_wpt.kml PS Посмотрел руководство, и увы... выполнение скриптов разрешено из KML: http://code.google.com/intl/ru-RU/apis/ ... escription