Перенаправление собственного агента iOS MDM
Я наблюдал странное, но последовательное поведение собственного агента iOS MDM.
Когда мы перенаправили его на другой URL-адрес, ответив HTTP 301, 302 или 307, агент изменил свой глагол HTTP PUT на GET, полностью отбрасывая тело HTTP-запроса.
Например, это был первый HTTP-запрос устройства к [URL-1]:
PUT [URL-1] HTTP/1.1
Host: [HOST]
User-Agent: MDM/1.0
Content-Length: 306
Accept: */*
Content-Type: application/x-apple-aspen-mdm
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
Proxy-Connection: keep-alive
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Status</key>
<string>Idle</string>
<key>UDID</key>
<string>86ff0b7c0129f1c1ed4ff36984c1a2a3e5e06c81</string>
</dict>
</plist>
Мы ответили HTTP 301 и перенаправили его на [URL-2]:
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: [URL-2]
X-Powered-By: ASP.NET
Date: Tue, 10 Jul 2012 10:48:31 GMT
Content-Length: 182
<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="[URL-2]">here</a></body>
Устройство получило доступ к [URL-2] с помощью этого HTTP-запроса (изменил глагол HTTP на GET и полностью отбросил тело HTTP):
GET [URL-2] HTTP/1.1
Host: [HOST]
User-Agent: MDM/1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
Proxy-Connection: keep-alive
Поддерживает ли собственный агент MDM перенаправления HTTP? Если это произойдет, что нам нужно изменить, чтобы он не отбрасывал тело HTTP и не менял глагол HTTP PUT?
1 ответ
Он поддерживает перенаправления HTTP с исключениями. Вместо этого используйте безопасный уровень для перенаправления.