Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich speichere keine IP-Adressen. Meine Skripte erheben keine Benutzerdaten. Was der Hoster macht ist was anderes. Wie drückt man das fachmännisch am besten aus?
Du weißt also gar nicht ob der Hoster die Zugriffe auf den Server speichert. Und trotzdem sagst du, der Server speichert keine IP-Adressen. Das sagt mir genug um dein Angebot nicht ernst zu nehmen.
Fachmännisch ausgedrückt: Du weißt nicht genau was du da machst.
Dann nutzen Sie das Angebot halt nicht, wenn Sie mir nicht vertrauen. Fachmännisch ausgedrückt: Ich habe eine andere Formulierung gewählt, sodass klar ist was gemeint ist.
Wenn du nicht mit Kritik umgehen kannst, dann solltest du keine Werbung machen. Und wenn du keine Kontrolle über den kompletten Server hast, dann darfst du nicht behaupten, dass der Server nicht loggt. Wenn du das doch machst, dann wundere dich auch nicht über entsprechende Kommentare. Bin ich im Kindergarten gelandet oder was?
Hast du die Erlaubnis deines Hosters, dass Pentests auf deine IP laufen dürfen? Die ist nämlich von Nöten. Primär wird nämlich die Infrastruktur des Hosters angegriffen und damit auch alle anderen Benutzer auf deiner Kiste und des Anbieters. So wie es oben auf deiner Seite steht, möchte ich vermuten, du bewegst dich da auf sehr dünnen Eis.
@c1i: Jetzt können Sie ihr fachmännisches Wissen unter Beweis stellen. Die Welt steht Ihnen offen. Aber dank des netten Hinweises von eraser werde ich den Hinweis entfernen.
1) Trustpilot? Wat???? 2) Du benutzt crypto.getRandomValues() für einen AES-Key, was auch in den Usage-Notes der Funktion als unsicher dargestellt wird. Dafür lieber die SubtleCrypto.generateKey(), weil es garantiert in einem sicheren Kontext läuft. 3) Wieso alternierst Du zwischen getRandomValues und randomBytes? Im Vergleich, randomBytes ist geeignet als getRandomValues() für AES-Keys, weil es prinzipiell nur ein Wrapper um OpenSSLs RAND()-Funktion ist, und garantiert im sicheren Kontext läuft 4) Wieso ist "CryptoJS" in der selben JS-File wie dein Code? Spricht eher für schlechte Modularaisierung 5) "CryptoJS" ist unnötig, wieso benutzt Du nicht die Browser-Eigenen Funktionen für AES/DES/Random-Values? 6) Du hast keine Ahnung ob Nitrado IPs speichert? Toll. Besorg Dir nen *eigenen* Server, wenn Du willst das Leute dein Zeug benutzen 7) Du vergisst bei manchen URLs mit PHP das Escaping 8) Wieso kriegen wir die Source vom Servercode nicht? Angst, das Leute dich "beklauen"? Wieso dürfen wir uns kein eigenes Bild davon machen, was Du dort tust, wo es doch wirklich recht trivial ist, vom Aufwand her? 9) Wieso benutzt Du Ajax? Vollkommen unnötig in dem Fall hier, weil Du damit effektiv Leute ausschließt, die kein JS ausführen lassen wollten, und daher folgt dann auch... 10) .... Javascript-Vorraussetzungen für XHR 11)
Fazit, 15 Minuten drüber gucken: Refactor and migration to server needed, bevor das auch nur irgendwer für irgendwas anfässt, wofür man solch einen Service nutzen würde.
Fazit, 15 Minuten drüber gucken: Refactor and migration to server needed, bevor das auch nur irgendwer für irgendwas anfässt, wofür man solch einen Service nutzen würde.
1) Trustpilot? Wat???? Ok, ich machs mal raus. Danke. 2) Du benutzt crypto.getRandomValues() für einen AES-Key, was auch in den Usage-Notes der Funktion als unsicher dargestellt wird. Dafür lieber die SubtleCrypto.generateKey(), weil es garantiert in einem sicheren Kontext läuft. Nein, ich benutze mittlerweile das hier:
[src=javascript]
let password = Math.random().toString(36).substr(2, 8);
let salt = CryptoJS.lib.WordArray.random(128 / 8);
let key = CryptoJS.PBKDF2(password, salt, {
keySize: 256 / 32
});
var encrypted = CryptoJS.AES.encrypt(message, key.toString());
[/src]
3) Wieso alternierst Du zwischen getRandomValues und randomBytes? Im Vergleich, randomBytes ist geeignet als getRandomValues() für AES-Keys, weil es prinzipiell nur ein Wrapper um OpenSSLs RAND()-Funktion ist, und garantiert im sicheren Kontext läuft Benutze ich ja nicht mehr.
4) Wieso ist "CryptoJS" in der selben JS-File wie dein Code? Spricht eher für schlechte Modularaisierung Es befindet sich nicht in der selben Datei, vielleicht hast du eine alte Version der JavaScript Datei in deinem Cache? 5) "CryptoJS" ist unnötig, wieso benutzt Du nicht die Browser-Eigenen Funktionen für AES/DES/Random-Values? Weil CryptoJS viel komfortabler ist. Ich benutze ein Fork von CryptoJS, der up to date gehalten wird. 6) Du hast keine Ahnung ob Nitrado IPs speichert? Toll. Besorg Dir nen *eigenen* Server, wenn Du willst das Leute dein Zeug benutzen Danke, das wäre eine Überlegung wert, kostet halt nur das 3 bis 4-fache. Momentan sind die Kosten ziemlich überschaubar. 7) Du vergisst bei manchen URLs mit PHP das Escaping Wo?
8) Wieso kriegen wir die Source vom Servercode nicht? Angst, das Leute dich "beklauen"? Wieso dürfen wir uns kein eigenes Bild davon machen, was Du dort tust, wo es doch wirklich recht trivial ist, vom Aufwand her? Natürlich ist es kein großer Aufwand ein ähnliches Projekt zu starten, aber ich möchte die Mechanismen nicht offen legen. Aus Sicherheitsgründen und weil viele mit dem Code sowieso nichts anfangen können, die meisten User meines Projekts kennen sich mit PHP nicht aus.
9) Wieso benutzt Du Ajax? Vollkommen unnötig in dem Fall hier, weil Du damit effektiv Leute ausschließt, die kein JS ausführen lassen wollten, und daher folgt dann auch... Da gebe ich dir recht, vorallem wenn Leute den Torbrowser benutzen mit NoScript. Da es aber hübscher ist mit JavaScript zu arbeiten, behalte ich das bei. Außerdem möchte ich eine Animation einblenden, wenn der AJAX request ausgeführt wird. Das kommt noch.
10).... Javascript-Vorraussetzungen für XHR Mein PHP Skript handelt das gut und es sollten auch keine Probleme auftreten.
11)
Wieso machst Du das Clientside? Das ist absolut sinnfrei. Denk mal ein bisschen über diese Aussage nach, warum mache ich es wohl client-seitig? 12)
Code:
function clock() {
submitBtn.disabled = "disabled";
var myTimer = setInterval(myClock, 1000);
var c = 10;
++c;
function myClock() {
submitBtn.value = --c;
if (c == 0) {
clearInterval(myTimer);
submitBtn.value = "Verschlüsseln & Link abrufen";
submitBtn.removeAttribute("disabled");
document.getElementById("input1").value = "";
}
}
}
Bevor man eine weitere Nachricht abschicken kann, soll man 10 Sekunden warten. Damit nicht gespammt wird. Serverseitig sind 10 Nachrichten innerhalb von 10 Minuten erlaubt.
13) Nochmal, trustpilot????
Na danke. Sehr freundlich... Die Werbung ist auskommentiert.
Fazit, 15 Minuten drüber gucken: Refactor and migration to server needed, bevor das auch nur irgendwer für irgendwas anfässt, wofür man solch einen Service nutzen würde.
Du hast bei uns im Chat noch mit deinem Gehaltszettel gewedelt, die 10€/Monat kannste doch gerade noch ausgeben, oder? Tankst du halt einmal weniger deinen 5er BMW voll.
Bevor du deinen Startpost editiert hast, wolltest du noch, dass wir das pentesten bzw bewerten? Angst, wir würden rausfinden, dass du alles nur copy&pasted hast?
Da dein Hoster Pentests offensichtlich nicht erlaubt, gib uns doch einfach den Code.
Da gebe ich dir recht, vorallem wenn Leute den Torbrowser benutzen mit NoScript. Da es aber hübscher ist mit JavaScript zu arbeiten, behalte ich das bei. Außerdem möchte ich eine Animation einblenden, wenn der AJAX request ausgeführt wird. Das kommt noch.