2016-10-11 2 views
0

Итак, у меня есть список тысяч URL-адресов, к которым можно получить доступ в моем приложении, многие из которых являются небезопасными (в настоящее время отключена ATS), а также некоторые из них перенаправляются на несколько других URL-адресов. Что мне нужно сделать, так это найти способ автоматизации этого процесса, чтобы выплескивать список небезопасных ссылок. У кого-нибудь есть идеи?Как проверить список произвольных URL-адресов?

+0

Похоже, вам просто нужно отключить ОВД. В iOS 10 вы можете использовать 'NSAllowsArbitraryLoadsInWebContent', если ваши небезопасные URL-адреса находятся только в веб-представлении, но если ваше приложение работает на версиях выше IOS 10, то отключить ATS является единственным реальным вариантом. Я бы сосредоточился на создании исключений для доменов, в которых вы знаете, что TLS доступен и важен (например, серверы, на которых вы используете API-интерфейсы). – Paulw11

+0

Нужно поддерживать обратно в iOS 8. Я думаю, что я попытаюсь написать приложение командной строки, которое проверяет URL-адреса , – JonahGabriel

+0

Звучит довольно хрупко; что произойдет, если один из этих веб-сайтов изменится после выпуска вашего приложения? Я бы отключил САР и сделаю это. – Paulw11

ответ

1

Вы можете написать вызов nscurl для запуска через URL-адреса. В принципе, со списком адресов в текстовом файле, как так:

urls.txt

https://www.apple.com 
https://www.reddit.com 
http://snopes.com 
http://www.yahoo.com 
https://www.google.com 

вы можете создать скрипт

ats_check.sh

#!/bin/sh 

while read URL 
do 
    nscurl --ats-diagnostics ${URL} 2>/dev/null > ats_results.txt 

    if grep -q "Result : FAIL" ats_results.txt; then 
     echo "${URL} failed ATS checks. run 'nscurl --ats-diagnostics ${URL}' for more details." 
    else 
     # echo "${URL} passed ATS checks." 
     echo "." 
    fi 
done < urls.txt 

rm ats_results.txt 

В принципе, если он не прошел ЛЮБОЙ тест в вызове nscurl, он отобразит URL-адрес.

Обратите внимание, что для nscurl требуется Mac OS 10.11 или новее.

+0

Кроме того, это может занять некоторое время, поскольку проверка ATS может занять некоторое время, особенно на более медленных сайтах. Я добавил точку для тех, которые успешно проходят, но вы можете взять все остальное, если вы просто хотите распечатать наши неудачные URL-адреса. – wottle

0

Закончено создание приложения CLI, которое использует WebView для загрузки всех URL-адресов в файл данных и сброса всех URL-адресов этой ошибки в текстовый файл.

+0

Неужели мой скрипт не работает для вас? Он в основном делает то, что вам нужно, не записывая приложение. Ваше приложение не будет помогать другим в переполнении стека в будущем, если вы не опубликуете источник и не предоставите ссылку. – wottle

+0

@wottle В то время как ваш сценарий велик, мне нужно немного сложнее. В основном мой инструмент будет выглядеть в текущем каталоге, сортировать все файлы csv по дате и использовать новейший, поскольку это входной файл. Затем инструмент развернет 20 веб-просмотров, чтобы начать проверку URL-адресов, извлеченных из сериализованной очереди данных, извлеченных из файла данных, которые включают URL-адрес и соответствующий GUID. После обработки данных инструмент выводит неверный URL-адрес, GUID и все перенаправления на небезопасный URL-адрес. Хотя все это, вероятно, можно было бы сделать с помощью сценария оболочки, никто из моей команды не смог бы его поддерживать. – JonahGabriel

+0

@wottle Как только я закончу, я буду искать открытый инструмент для других пользователей. – JonahGabriel