So habe ich eine Liste von Tausenden von URLs, auf die in meiner App zugegriffen werden kann, von denen viele unsicher sind (ATS ist derzeit ausgeschaltet), auch einige umleiten auf mehrere andere URLs. Was ich tun muss, ist einen Weg zu finden, diesen Prozess zu automatisieren, um eine Liste unsicherer Links auszuspucken. Hat jemand Ideen?Wie validiere ich eine Liste von beliebigen URLs?
Antwort
Sie können den nscurl-Aufruf über die URLs scripten. Grundsätzlich mit einer Liste von URLs in einer txt-Datei wie folgt:
urls.txt
https://www.apple.com
https://www.reddit.com
http://snopes.com
http://www.yahoo.com
https://www.google.com
Sie ein Skript erstellen könnte
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
Wenn es im Nscurl-Aufruf ANY-Tests nicht besteht, wird die URL angezeigt.
Beachten Sie, dass nscurl Mac OS 10.11 oder höher erfordert.
Auch das kann eine Weile dauern, da die ATS-Prüfungen eine Weile dauern können, besonders auf langsameren Sites. Ich habe einen Punkt für diejenigen hinzugefügt, die erfolgreich bestanden haben, aber Sie können den ganzen anderen Block entfernen, wenn Sie nur einen unserer fehlerhaften URLs drucken möchten. – wottle
Ich habe eine CLI-App geschrieben, die ein WebView verwendet, um alle URLs in meine Datendatei zu laden und alle URLs diesen Fehler in eine Textdatei zu schreiben.
Hat mein Skript nicht für dich funktioniert? Es tut im Grunde, was Sie brauchen, ohne eine App schreiben zu müssen. Ihre Anwendung wird anderen in Zukunft beim Überlauf des Stacks nicht helfen, es sei denn, Sie veröffentlichen die Quelle und stellen einen Link zur Verfügung. – wottle
@wottle Während dein Skript großartig ist, ist das, was ich brauche, etwas komplexer. Grundsätzlich sucht mein Tool im aktuellen Verzeichnis, sortiert alle CSV-Dateien nach Datum und verwendet das neueste als Eingabedatei. Das Tool wird dann 20 Webansichten starten, um zu beginnen, URLs aus einer serialisierten Warteschlange von Daten zu prüfen, die aus der Datendatei extrahiert wurden, die die URL und die zugehörige GUID enthält. Nachdem die Daten verarbeitet wurden, gibt das Tool die ungültige URL, die GUID und alle Weiterleitungen an die nicht sichere URL aus. Während all dies wahrscheinlich über Shell-Skript getan werden könnte, niemand in meinem Team wäre in der Lage, es zu pflegen. – JonahGabriel
@wottle Sobald ich fertig bin, werde ich in Open Source suchen, das Tool für andere zu verwenden. – JonahGabriel
- 1. Wie validiere ich eine Liste von Bereichen untereinander?
- 2. Scraping eine Liste von URLs
- 3. Wie validiere ich DRY?
- 4. Wie validiere ich Importfunktionen?
- 5. Wie validiere ich eine android-manifest Datei?
- 6. Wie validiere ich eine URL-Adresse in jQuery mit Regex?
- 7. Wie validiere ich eine Regex mit PHP
- 8. Wie validiere ich eine moment.js Dauer?
- 9. Wie validiere ich eine Handynummer mit PHP?
- 10. Wie validiere ich manuell eine SAMLResponse-Signatur?
- 11. Wie validiere ich eine composed_of ActiveRecord-Klasse?
- 12. Wie validiere ich eine Nachricht in pcap?
- 13. Wie validiere ich?
- 14. wie eine Liste von URLs und dessen Titel
- 15. Wie man eine Liste von URLs in einer Textdatei "wget"?
- 16. JSR 303: Wie validiere ich eine Sammlung von annotierten Objekten?
- 17. Wie validiere ich eine HTML-Datei mit C#?
- 18. Wie validiere ich Selectize.js Tags von jquery
- 19. Wie validiere ich Liste: String Felder mit web2py?
- 20. Wie validiere ich ein Array?
- 21. Wie validiere ich PasswordBox WPF
- 22. Wie kann ich eine benutzerdefinierte Variable in eine Liste von URLs in einer Textdatei schreiben?
- 23. Wie validiere ich, dass eine NSData eine PDF ist?
- 24. Wie validiere ich ein JTextField?
- 25. Wie validiere ich Python-Bytecode?
- 26. Wie füge ich dem Dokument eine Liste von Bildern aus einem Array von URLs hinzu?
- 27. Wie bekomme ich eine Thread-ID von einem beliebigen pthread_t?
- 28. Wie validiere ich OAuth-Anfragen?
- 29. Wie validiere ich eine XHTML-Datei gegen eine angegebene DTD?
- 30. Wie validiere ich QuickBooks Verbindung?
Es klingt als ob Sie nur ATS ausschalten müssen. In iOS 10 können Sie 'NSAllowsArbitraryLoadsInWebContent' verwenden, wenn sich Ihre unsicheren URLs nur in einer Webansicht befinden. Wenn Ihre App jedoch auf früheren Versionen als iOS 10 ausgeführt wird, ist die Deaktivierung von ATS die einzige echte Option. Ich würde mich darauf konzentrieren, Ausnahmen für Domains zu erstellen, von denen Sie wissen, dass TLS verfügbar und wichtig ist (z. B. Server, auf denen Sie APIs verwenden). – Paulw11
Benötigen Sie Unterstützung für iOS 8. Ich denke, ich werde versuchen, eine Befehlszeilen-App zu schreiben, die URLs validiert . – JonahGabriel
Das klingt ziemlich zerbrechlich; Was passiert, wenn sich eine dieser Websites nach der Veröffentlichung Ihrer App ändert? Ich würde ATS deaktivieren und fertig sein. – Paulw11