Javascript - File Cleaner
Auf der Beispiel-Seite lassen sich Inhalte durch Einfügen von Config oder Textdateien aufgrund einer Blacklist überprüfen
https://dl.dropbox.com/u/40602931/cod4/ahk/file_checker_blacklist.html
Javascript-Code: http://pastie.org/4614534
Als Beispiel einfügen:
Nach drücken des Scan Buttons erhält man folgende Meldung:
Line 3: Disallowed DVAR name aimbot (Remove this line)
Durch klicken auf (Remove this line) wird die fehlerhafte Zeile entfernt
Wie bekomme ich hin das das ganze mit einer Art Whitelist funktioniert.
Vorher: Einträge werden nach Blacklist Wörter wie "aimbot" durchsucht
Nacher: Alles was nicht dem Enspricht was ich eingetragen habe als Falsch anzeigen (Whitelist)
Das ganze soll auch weiterhin mit dem seta und bind klappen
danke im Voraus
https://dl.dropbox.com/u/40602931/cod4/ahk/file_checker_blacklist.html
Javascript-Code: http://pastie.org/4614534
Als Beispiel einfügen:
seta test1 "1"
seta test2 "1"
seta aimbot "1"
Nach drücken des Scan Buttons erhält man folgende Meldung:
Line 3: Disallowed DVAR name aimbot (Remove this line)
Durch klicken auf (Remove this line) wird die fehlerhafte Zeile entfernt
Wie bekomme ich hin das das ganze mit einer Art Whitelist funktioniert.
Vorher: Einträge werden nach Blacklist Wörter wie "aimbot" durchsucht
Nacher: Alles was nicht dem Enspricht was ich eingetragen habe als Falsch anzeigen (Whitelist)
Das ganze soll auch weiterhin mit dem seta und bind klappen
danke im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190456
Url: https://administrator.de/forum/javascript-file-cleaner-190456.html
Ausgedruckt am: 16.04.2025 um 05:04 Uhr
15 Kommentare
Neuester Kommentar
Moin moin
Nur damit ich das richtig verstehe:
Nein, __das ist nicht möglich !__
Wen das ginge, könnte sich ja jede Website die "Windows-Sicherheitsdateie(n)" selber zuschicken, OHNE das der Besucher weder danach gefragt wird oder etwas davon mitbekommt.
Mit etwas Glück kannst du noch den Dateinamen (manchmal auch mit Pfad) auslesen, aber dann ist Schluss !
~Arano
Nur damit ich das richtig verstehe:
- Du hast ein <input type="file">-Element.
- NACH dem Auswählen einer Datei möchtest du den kompletten Dateinamen auslesen,
- nun den Dateinamen __bearbeiten__ und
- wieder zurück in das <input type="file">-Element schreiben ?
Nein, __das ist nicht möglich !__
Wen das ginge, könnte sich ja jede Website die "Windows-Sicherheitsdateie(n)" selber zuschicken, OHNE das der Besucher weder danach gefragt wird oder etwas davon mitbekommt.
Mit etwas Glück kannst du noch den Dateinamen (manchmal auch mit Pfad) auslesen, aber dann ist Schluss !
~Arano
Hi
Der zweite Link zeigt __unkommentierten__ und __unbeschriebenen__ sonstwas Code und
mit dem drittem Link kann ohne Beschreibung auch niemand etwas anfangen !
Lies dir mal dieses durch (Abschnitt:"indexOf()"): selfHTML - indexOf()
Und dann schau dir diese beiden Zeilen mal an:
Dann müsstest man es eigentlich umbauen/anpassen können.
~Arano
das mit dem Upload war nicht wörtlich gemeint...
Hm.. Im Titel steht was von File-Upload und im erstem Link geht es auch im <input type="file">Der zweite Link zeigt __unkommentierten__ und __unbeschriebenen__ sonstwas Code und
mit dem drittem Link kann ohne Beschreibung auch niemand etwas anfangen !
Lies dir mal dieses durch (Abschnitt:"indexOf()"): selfHTML - indexOf()
Und dann schau dir diese beiden Zeilen mal an:
if(b[b.length-1].toLowerCase().indexOf(f[d].toLowerCase())!==-1)
/* ... */
if(b[b.length-1].toLowerCase().indexOf(f[d].toLowerCase())!==-1)
Dann müsstest man es eigentlich umbauen/anpassen können.
~Arano
Okay, das ist schon mal besser !
Aber was ist mir der zweiten Hälfte meiner Antwort ??
?Hm...
Also fertigen Code gibt es von mir nicht, ich bin nur __zum helfen__ hier. ;)
die Anwendung des Scriptes selber ist wird ja im Quelltext der Beispielseite gezeigt...
Jetzt weiss ich einfach nicht WAS du denn erklärt haben möchtest !?
Hast du überhaupt etwas an Wissen über HTML und Javascript oder, Hand aufs Herz, eigentlich keine/kaum Ahnung !?
~Arano
Also fertigen Code gibt es von mir nicht, ich bin nur __zum helfen__ hier. ;)
indexOf()
ist wunderbar auf der selfHTMl-Seite beschrieben unddie Anwendung des Scriptes selber ist wird ja im Quelltext der Beispielseite gezeigt...
Jetzt weiss ich einfach nicht WAS du denn erklärt haben möchtest !?
kannst du mir das anhand eines Beispiels von oben erklären?
- das ist nicht sonderlich aussagekräftig und
- oben steht mittlerweile verschiedenes
Hast du überhaupt etwas an Wissen über HTML und Javascript oder, Hand aufs Herz, eigentlich keine/kaum Ahnung !?
~Arano
HTML und CSS ja
Javascript noch nicht (bzw nur einfache sachen)
Alles kein problem, nur etwas unpraktisch wenn man mit Javascript arbeiten möchte :D aber...Javascript noch nicht (bzw nur einfache sachen)
ein fertigen code wollte ich ja nicht
das ist schön !Ich meinte ja, dass wenn du das gefunden Script anpasst, es dann wie eine Whiteliste fungiert !
Scheinbar muss ich doch das ganze Script einmal etwas erklären...
Also, wenn die JS-Funktion-
checkCfg()
aufgerufen wird holt sich diese den Text aus der <textarea id="cfg"> und zerteilt ihn bei jedem Zeilenumbruch ("\n" "\r\n" "\r") in einzelne Zeilen/Elemente und speichert sie in einem Array.Alle Elemente des Arrays (bzw. Zeilen des Textes) werden anschließend einzeln durchlaufen.
Mit einem "regulärem Ausdruck" (RegEx von (en)regular expression) wird nun überprüft ob die Zeile mit "bind" beginnt und gleichzeitig das __übernächste Wort__ "ein gescannt".
Wenn die Zeile hingegen nicht mit "bind" beginnt, wird geprüft sie mit "seta" beginnt und die __beiden nächsten Wörter__ "eingescannt".
Jetzt muss nur noch das/die gescannte(n) Wort/Wörter mit der Liste der geblacklisteten Wörter (es gibt zwei Listen, für "bind"=f und "seta"=c) abgeglichen werden (das sind die Zeilen mit
indexOf()
die ich gepostet hatte). Wenn nun das Wort per indexOf() in der Blackliste gefunden wird, ist es ein "böses" und muss gestrichen andernfalls ist es ein "gutes". var liste = ["schlecht","verdorben","ungeniesbar"];
var wort = "himmel";
/* negierter (!) vergleich */
if( liste.indexOf(wort)!=-1 ) // wenn "wort" IN der "liste" vorkommt (s. selfHTML-indexOf)
{
/* "wort" ist BÖSE ! */ // alles was NICHT in der "liste" steht ist also GUT */
}
var liste = ["wolken","himmel","sonne"];
var wort = "himmel";
/* normaler vergleich */
if( liste.indexOf(wort)==-1 ) // wenn "wort" NICHT in der "liste" vorkommt (s. selfHTML-indexOf)
{
/* "wort" ist BÖSE ! */ // alles was IN der "liste" steht ist also GUT */
}
Ich habe das __nicht__ getestet ;)
Hoffe das konnte dir helfen !?
Sonst frag halt nochmal, je genauer die Frage, desto besser die Antwort...
~Arano
Ohm...
...keine Ahnung !
Ich kenne weder deine Listen ("c" und "f") noch deine Prüfeingaben !?
Alle "bind" Konfigurationen werden gegen die Liste "f" geprüft.
Alle "seta" Konfigurationen werden gegen die Liste "f" und "c" geprüft.
Alles aus Liste "f" wird orange markiert und
alles aus Liste "c" wird rot markiert.
Das es DREI Stellen gibt an denen geprüft wird, ist mir eben erst aufgefallen...
...schau nochmal drüber und Probiere es erneut.
~Arano
...keine Ahnung !
Ich kenne weder deine Listen ("c" und "f") noch deine Prüfeingaben !?
Alle "bind" Konfigurationen werden gegen die Liste "f" geprüft.
Alle "seta" Konfigurationen werden gegen die Liste "f" und "c" geprüft.
Alles aus Liste "f" wird orange markiert und
alles aus Liste "c" wird rot markiert.
Das es DREI Stellen gibt an denen geprüft wird, ist mir eben erst aufgefallen...
...schau nochmal drüber und Probiere es erneut.
~Arano
Benutzt du die eine Liste als White- und die andere als Blacklist ?!
Wenn dein Ergebnis jetzt genau falsch herum ist, dann hast du möglicher weise einfach die Prüfungen vertauscht bzw. hast dich mit dem negieren vertan !?
Ich habe hier nichts nachgebaut, ich lebe nur von den Informationen die du schreibst...
~Arano
Wenn dein Ergebnis jetzt genau falsch herum ist, dann hast du möglicher weise einfach die Prüfungen vertauscht bzw. hast dich mit dem negieren vertan !?
Ich habe hier nichts nachgebaut, ich lebe nur von den Informationen die du schreibst...
~Arano
Jetzt habe ich mal etwas genauer hingesehen...
Vielleicht hilft dir das hier weiter, ansonsten kann ich wohl nicht mehr viel machen.
Beim überprüfen von "bind" wird nur das "value" gegen die Liste "f" geprüft, beim Treffer = orange.
Beim überprüfen von "seta" wird zuerst "name" gegen die Liste "c" geprüft, beim Treffer = rot und
anschließend wird "value" gegen die Liste "f" geprüft, beim Treffer = orange.
Heißt:
Orange Treffer weisen auf "böse" value-Werte hin und
rote Treffer weisen auf "böse" name-Werte.
Das bezieht sich natürlich alles auf das original Script, so wie es bei Pastbin steht.
~Arano
Vielleicht hilft dir das hier weiter, ansonsten kann ich wohl nicht mehr viel machen.
bind key value
seta name value
Beim überprüfen von "seta" wird zuerst "name" gegen die Liste "c" geprüft, beim Treffer = rot und
anschließend wird "value" gegen die Liste "f" geprüft, beim Treffer = orange.
Heißt:
Orange Treffer weisen auf "böse" value-Werte hin und
rote Treffer weisen auf "böse" name-Werte.
Das bezieht sich natürlich alles auf das original Script, so wie es bei Pastbin steht.
~Arano