У меня есть .php-файл, который генерирует XML-файл. Я использую этот XML в моем приложении C #, и я хочу проверить этот файл .php, если запрос поступает из приложения Windows, потому что я не хочу, чтобы пользователи просматривали эту страницу в браузере. Пожалуйста, помогите мне. Хорошего дня.
как насчет добавления некоторого ключевого слова для получения этого xml-файла? сделать некоторый пароль, чтобы взять этот xml с, и запросить файл php, такой как myxml.php? key = mykeywordishere, ключевое слово может быть закодировано с некоторым md5, это важно.
Простым способом может быть вызов php-скрипта с определенным ключом в качестве секретного параметра.
www.myweb.com/myfunction.php?pass=secretPassword
Этот ключ будет привязан к вызову вашего приложения #C.
Тогда вы можете просто проверить, является ли пароль тем, который вы ожидаете, с чем-то вроде:
//hardcoded hashed pass with sha1, for example. $myHashedPass = '40bd001563085fc35165329ea1ff5c5ecbdbbeef'; if(sha1($_GET['pass']) != $myHashedPass){ die(); }
Вы должны рассмотреть возможность использования пользовательской строки User-Agent, а также установить Content-Type в нечто вроде "application/octet-stream".
Или используйте жесткий код в вашем приложении C #.
Если важна безопасность, вы также должны использовать HTTPS, потому что вся предыдущая информация может быть получена кем-то, у кого есть основное понимание Wireshark или любой аналогичной программы.
Вы можете использовать специальный пользовательский агент в заголовках для запроса, поэтому вы можете проверить, например, что пользовательский агент является «My C # Application». Если это не так, запрос не был выдан вашей заявкой.
См. Свойство HttpRequest.UserAgent о том, как изменить агент пользователя. В PHP используйте это, чтобы получить строку пользовательского агента:
$userAgent = $_SERVER['HTTP_USER_AGENT'];