Intereting Posts
удалять теги «<» и «>» из массива в php Комплексный запрос MySQL – проверка на совпадение интервалов DATE CRUD Laravel 5 как связать с уничтожением контроллера ресурсов? fwrite () и UTF8 Как заставить PHP работать снова в командной строке? Направить электронную почту на сервер apache / php Как добавить пробел в строку заглавными буквами, но сохранить непрерывные капиталы вместе с помощью PHP и Regex? Почта Swiftmailer входит в папку SPAM. Предупреждение: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, null указан в где является фатальной ошибкой «Не удается получить доступ к пустому свойству» в функции класса PHP? Подключение к mongodb с использованием драйвера PDO Неустранимая ошибка: require_once () : Не удалось открыть окно '__DIR__ Значения мусора, возникающие при извлечении данных из wordpress выберите count (*) из таблицы mysql в php Почему этот PHP-код работает на одной машине и терпит неудачу на другом?

Проверьте, поступает ли запрос из приложения Windows

У меня есть .php-файл, который генерирует XML-файл. Я использую этот XML в моем приложении C #, и я хочу проверить этот файл .php, если запрос поступает из приложения Windows, потому что я не хочу, чтобы пользователи просматривали эту страницу в браузере. Пожалуйста, помогите мне. Хорошего дня.

Solutions Collecting From Web of "Проверьте, поступает ли запрос из приложения 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'];