Validierung von Websites

 Documents

 52 views
of 15
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
Validierung von Websites Karsten Stein, Bernd Voit Projektziele  Überprüfung nach verbotenen und erforderlichen Inhalten  Download von…
Share
Transcript
Validierung von Websites Karsten Stein, Bernd Voit Projektziele  Überprüfung nach verbotenen und erforderlichen Inhalten  Download von passwortgeschützten Seiten  FTP up- und download  Formulare mit get und post-Methode  Durchsuchen nach Links, E-Mails, etc.  Ausgabe eines Resume auf Bildschirm  Erstellung einer Logdatei Vorgehensweise I  Steuerung durch eine Skriptdatei  HTTP und FTP Download mit Hilfe der Curl-Library  Durchsuchen einer Website durch reguläre Ausdrücke mit Hilfe eines REGEX der pcre-Library  Weitere Durchsuchung der Suchergebnisse  Ausgabe von Suchergebnissen und Kommentaren Vorgehensweise II  Verwendung von Programmargumenten, Integer- Variablen und Suchergebnissen als Platzhalter  Unbedingte und bedingte Sprünge (anhand der Suchergebnisse)  Ausführung von Programmen und Programmmodulen im Skript Reguläre Ausdrücke  meta-characters – \ general escape character with several uses – ^ assert start of subject (or line, in multiline mode) – $ assert end of subject (or line, in multiline mode) – . match any character except newline (by default) – [ start character class definition – | start of alternative branch – ( start subpattern – ) end subpattern – ? extends the meaning of ( also 0 or 1 quantifier also quantifier minimizer – * 0 or more quantifier – + 1 or more quantifier – { start min/max quantifier •Beispiel: Integer-Zahlen [+|-]?([1-9][0-9]*)|0 Vereinfachter Ablauf Skriptbefehle Nummer Name und Parameter Beschreibung 0 Neg option regex Verbotener Inhalt 1 Pos option regex Erforderlicher Inhalt 3 Limit option regex Text/Teiltexte einschränken 8 Vneg option regex Negativ mit Infozeile 9 Vpos option regex Positiv mit Infozeile 11 Vlimit option regex Wie Limit jedoch mit Infozeile -1 Print Text Textzeile ausgeben (printf) -2 Cleft Anzahl X Zeichen links abschneiden (für jeden Teiltext) -3 Cright Anzahl X Zeichen rechts abschneiden (für jeden Teiltext) -4 File Dateiname Datei laden -5 url URLname URL laden -6 Write Dateiname Teiltexte in eine Datei schreiben -7 Init Alle Einschränkungen aufheben und ursprünglichen Zielstring verwenden -8 // String Kommentar -9 Show Alle Teiltexte ausgeben -10 Post url parameter URL laden inklusive Post-Parameter -11 Showlist Alle Anfangs und Endpositionen der Teilstrings anzeigen (debug) -12 Label labelname: Sprungmarke setzen -13 Jump labelname Zur Sprungmarke springen -14 Jumpif labelname nummer Zur Sprungm. springen, wenn Treffer x nicht vorhanden -15 Jumpifr labelname optionen regex Zur Sprungmarke springen, wenn Regex nicht vorhanden -16 Var I Variablename Operator Zahl Integer-Variable (Operatoren: =,+,-,*,/) -18 Login url user:passw. Anmeldung an einer passwortgeschützen Seite (ftp oder http) -19 Sort Teiltexte alphabetisch sortieren -20 Upload url user:passw. Quelldatei Upload einer Datei an einem Server -21 Run Programmname Parameter Ausführung eines Programms / Skriptdatei Platzhalter  Platzhalter können eigentlich überall in der Skriptdatei verwendet werden. Auch Schachtelung ist möglich, z.B.: {!/{!1!}!}. Es gibt drei Formen von Platzhaltern: 1. als Programmargument beim Programmaufruf oder bei Modul laden Format: {![0-9]+!}, Bsp.: 2. Argument: {!2!} 2. als Suchergebnis (Befehl „limit“) Format: {!/[0-9]+!}, Bsp.: 3. Treffer der letzten Suche: {!/3!} 3. als Integer-Variable (Befehl „var“) Format: {![A-Z][0-9|A-Z]*!}, Bsp.: Variable i: {!i!} Pcre.lib für die REGEX-Ausdrücke  struct returnPCRE { int counter; char regexR[MAXLINE]; int ovector[OVECCOUNT]; };  returnPCRE pcreDatei(char *htmldatei, const char *regex, int optionen);  Optionen der PCRE: 1 PCRE_CASELESS 2 PCRE_MULTILINE 4 PCRE_DOTALL 8 PCRE_EXTENDED 16 PCRE_ANCHORED 32 PCRE_DOLLAR_ENDONLY 64 PCRE_EXTRA 512 PCRE_UNGREEDY 2048 PCRE_UTF8  Kombination durch oder-Verknüpfung / Addition möglich. libcurl.lib zum Transfer über’s Web  char *getURL(char *url, char *keyval, char *userpwd);  void pushURL(char *url, char *source); Inerna:  Befehle >=0 Diese haben (intern) folgende Bitstruktur 1:Positiv 2:Einschränkung 4:Ergebnis der Suche ausgeben 8:Erweiterte Ausgabe (OK/NOTOK Regex)  Types.txt Hier sind die Befehlsnamen den Befehlsnummern zugeordnet. 33 3 limit 3 filter die Zahl 3 ist also die interne Nummerierung, und das Wort rechts daneben die Bezeichnung, die in der Skriptdatei angegeben werden muss. 3, limit und filter haben hier also die gleiche Bedeutung. Beispiel 1:Zugriff auf Passwortgeschützte Seite mit Fehlerauswertung // Passwortgeschützte Seite laden login www-1.informatik.fh-wiesbaden.de/~kstei001/ user:passw jumpifr ok1 0 404 Not Found print Seite nicht vorhanden jump ende label ok1: jumpifr ok2 0 Authorization Required print falscher Username oder Passwort jump ende label ok2: print Username und Passwort OK label ende: Beispiel2: FTP-Upload // ausgehend von einer Linkliste, pro Zeile eine Datei (durchnummeriert) auf einem Server uploaden // Linkliste laden load linkliste.txt // ein Teiltext entspricht einer Zeile limit 34 ^..*$ // Varialbe erstellen var i test = -1 label anfang: var i test + 1 jumpif ende {!test!} startModul Web2Txt.txt {!/{!test!}!} {!test!}.txt upload ftp.informatik.fh-wiesbaden.de/{!test!}.html usr:pwd {!test!}.txt Jump anfang label ende: print Skript beendet. // Hilfs-Skriptdatei Web2Txt.txt: url {!1!} write {!2!} print Beispiel 3: Formularergebnis nach erforderlichen Inhalt prüfen (1) print 1. Suche von Informatik.FH-Wiesbaden laden url http://fh-web1.informatik.fh-wiesbaden.de/go.cfm?fb=6&action=search&sprachid=1&lpid=0&sid=0 print print Body von der Framesite herausfiltern vlimit 515 show vlimit 515 src=".*" show cleft 5 cright 1 show print print Suchseite laden url http://fh-web1.informatik.fh-wiesbaden.de{!/0!} print print Fachhochschule durchsuchen muss vorhanden sein vlimit 512 Fachhochschule durchsuchen jumpif errDurchsuche 0 print init print suche starten vlimit 515 vlimit 515 action=".*" vlimit 515 ".*" cleft 1 cright 1 Beispiel 3: Formularergebnis nach erforderlichen Inhalt prüfen (2) post http://fh-web1.informatik.fh-wiesbaden.de{!/0!} query={!1!} print print Titel der Suchergebnisse von {!1!} label treffer: // nach erforderlichem Inhalt überprüfen limit 0 Texis & Webinator Copyright \(C\) 2\d{3,3} THUNDERSTONE - EPI, Inc.">.\n .$ jumpif errCopyright 0 init // Titel der Suchergebnisse ausgeben limit 515 .* cleft 8 cright 9 show init // Nach dem Link "weiter" suchen limit 515 weiter>> // Sprung wenn keine Treffer jumpif ok 0 limit 515 limit 515 ".*" cleft 1 cright 1 url http://fh-web1.informatik.fh-wiesbaden.de{!/0!} jump treffer Beispiel 3: Formularergebnis nach erforderlichen Inhalt prüfen (3) label errDurchsuche: print print Fachhochschule durchsuchen nicht gefunden jump ende label errCopyright: print print Copyright nicht gefunden jump ende label ok: print print keine Fehler aufgetreten label ende: print
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks