Beiträge von Sarkkan

    "webmaster3000" schrieb:

    Ja, der Username ist "adenauer".
    Und ja, die Usernamen sollen angezeigt werden, aber wenn es sicherer wäre, sie nicht auszulesen, würde ich das ändern.

    Dann wäre es doch merh als ein einfaches mich mit Fremdem Account einzuloggen. Ich brauche nicht mal das Passwort sondern muss einfach nur den Richtigen Cookie mitsenden und die Welt steht mir offen.
    Und so etwas ist eines der ersten Sachen die jemand der versuchen würde Sicherheitslücken zu finden, ausprobieren würde (weil es halt leider recht viele gibt die so etwas machen).

    "webmaster3000" schrieb:

    Außerdem habe ich md5 verwendet, was in anderen Threads schon empfohlen wurde.

    Ich habe immer gesagt das du einen Salt verwenden sollst.
    Hat den Vorteil, dass ich so halt nicht einfach den Usernamen kennen muss, sondern den Salt ebenfalls brauche.
    Oder aber ich probiere so lange herum bis ich einen identischen md5-Wert generiert bekomme.

    "webmaster3000" schrieb:

    Davo abgesehen glaube ich nicht, dass es hier relevant ist, wass ich mir da zusammenschreibe.

    Wie du siehst schon.
    In einer Community ist es Standard, dass Benutzernamen angezeigt werden. In einem einfachen Loginbereich, in dem du mit deinen Freunden irgendetwas teilen möchtest würden diese nicht angezeigt.


    "webmaster3000" schrieb:

    Welche Verschlüsselung würdest du denn nehmen?

    MD5 mit einem Salt reicht aus.

    "webmaster3000" schrieb:

    Soll ich das "gehashte" Passwort auch noch als Cookie speichern?

    Wenn du einen Salt verwendest kannst du das machen.. Anderer Vorschlag:
    Du erzeugst eine einzigartige ID die du auch in die Datenbank einträgst und als Cookie versendest (und als Session-Id verwendest). In der Session speicherst du zusätzlich noch den User-Agent.
    Den natürlich:

    "webmaster3000" schrieb:

    und *erraten* kann man die Daten immer, da kannste verschlüsseln, biste dumm und dämlich bist.

    Aber wir können es bösen Menschen so schwer wie Möglich machen :wink:

    "NeoAramis" schrieb:

    Ich frage mich gerade worin der Unterschied liegt?


    Ich habe den Unterschied! :D Bei Sicherheitszertifikatien unterscheidet man zwischen "Normalen Zertifikat" welches nur für https://domain.tld gilt und sogenannte Wildcardzertifikate welches für https://*.domain.tld.
    Dieses Wildcardzertifikate würde dann immerhin bei meinem Anbieter noch 400€ kosten.. Ist aber dennoch recht Groß :/
    Vllt schreibe ich meinen Anbieter bei Gelegenheit mal an und Frage nach :)

    Was genau schreibst du da den?
    Eine Community? Werden die Usernamen irgendwo vllt angezeigt, z.B. in Profilen?
    Demnach könnte ich einfach selbst Hash-Cockies erstellen und an deine Seite schicken.


    Veräts du mir den vllt noch, welche "Verschlüsselung" (Ein Hash ist übrigens keine Verschlüsselung :) ) du verwendet hast?


    PS: Der Benutzername ist aber nicht zufälligerweise 'adenauer' oder?
    Das Passwort was ich zu deinem Hash raus habe poste ich aber jetzt einfach mal nicht.

    Wow, nicht schlecht O_o
    Ich bin jetzt von den 50€ Ausgegangen, weil mein Hoster ein solches Zertifikat in dem 25€/Monat Paket einem dazu gibt.


    Habe aber gerade mal nach gesehen, wie viel es bei meinem Hoster kosten würde. Bei ihm kann man es sich für 99€/Jahr holen^^
    (Beweis)

    1. Fein
    2. Muss nicht, ist aber einfach schöner :)
    3. Super :D
    4. Und wie der der Username verschlüsselt? Darf ich mich mal auf deiner Seite anmelden und anschließend einige Cookies Manuell an dich senden? :)
    5. 1993, in 2 Wochen bin ich 18


    Was du in deine Sessions reinschreibst ist dem Besucher relativ egal :)
    Eine Session ist eine Datei, die auf dem Server liegt. über die Session-ID ds Besuchers ist es dann möglich immer aus der selben Datei für den selben Besucher zu lesen.


    Edit: Warum löschst du einfach deinen Post? .__.

    Dein Hoster bietet dir eine Kostenlose Möglichkeit an O.o
    Und das Geld bekommt nicht der Hoster, sosnt gäbe es auch Hoster, die das kostenlos zur verfügung stellen würden^^

    Strato lässt dich da über seinen SSL-Proxy verbinden^^
    Eine normale Seite mit SSL, benötigt ein Sicherheitszertifikat, was pro Jahr ~50€ (?) kostet.
    Verbindest du einfach so über SSL wird der Browser den Benutzer warnen, was eher Kontraproduktiv ist :/

    "webmaster3000" schrieb:

    Aber die Geschwindigkeit haben die Firefox-Entwickler mit der Version 7 angehoben, ist halt nur die Frage, wann die breite Masse umsteigt. Ich hab ihn natürlich schon längst :D
    Die Stabilität ist bei mir jedenfalls super, ich weiß allerdings nicht, wie das mit sovielen offenen Tabs wird.

    Auf der Arbeit benutze ich den FF7 (weil es halt einfach die Offizielle letzte richtige Version ist) und zu Hause den FF8.
    Und keiner der beiden läuft bei mir wirklich gut. Okey, ich könnte natürlich alles daran setzten meine 5 Tabs nicht zu überschreiten, damit alles flüssig bleibt.. aber what the f**k?! O.o
    Dann kann ich ja direkt über die Kommandozeile ins Internet ;D


    Übrigens hat Geschwindigkeit und Stabilität nichts miteinander zu tun^^
    Hier wird sich nämlich über die Stabilität und eher indirekt über die Geschwindigkeit beschwert (die halt dadurch verlangsamt wird, dass der Browser nicht stabil läuft).

    webmaster3000 : Okey, wenn du eine langsame Verbindung hast wirst du sicherlich auch nicht mit ~40-60 Tabs gleichzeitig surfen.
    Chrome lacht mich da aus, wenn ich ihn so versuche in die Knie zu Zwingen (Was einfach schon daran liegt, dass er für jeden Tab ein eigenen Thread erstellt).
    Firefox hingegen darf ich alle 30-45Minuten neustarten, weil ich ansonsten klicke und das JavaScript dann erst einmal 10-20 Sekunden braucht bis es chekc,t dass es gemeint ist.


    Und wie gesagt, Chrome bietet genau so viele, wenn nicht sogar noch mehr.
    Das Problem ist nur, dass das alles echt richtig schlechte Addons sind. Wer auch immer die geschrieben hat.. die Person gehört geschlagen -.-*
    Genau das selbe wie bei den Themes.. Firefox-Nutzer scheinen einfach ein Auge fürs Detail zu haben und versuchen alles Stimmig und Variabel zu halten.
    Bei Chrome bekomme ich dann Themes mit einem 800x600er Hintergrundbild und "Weißer Adler auf weißem Grund" -.-*

    "webmaster3000" schrieb:

    Hi Monitsch!


    Das "BOM" hat keine wichtige bedeutung (alle Angaben ohne Gewähr :wink:).

    Kleiner Tipp, lass es nicht drauf ankommen :wink:
    Das ist ein gaaanz böser Kleiner Fehler im Webbereich, der BOM ist eine 3Zeichen lange Sequenz am Anfang der Datei. Nur Browser, Server,.. können mit UFT8-BOM nichts anfangen, weil es in diesem Zeichensatz auch anders als in UTF-16 Und UTF-32 wo es Pflicht ist, nicht üblich ist.
    Stattdessen interpretieren Sie es als Ausgabe und setzten somit als aller erstes .
    Damit ist Content vor dem Doctype und dieser wird daher nicht mehr als Doctype erkannt und die Seite so im Quirks-Modus geparst. Oder für Server ist das in PHP-Dateien eine Ausgabe, in .htaccess-Dateien ist es eine Ungültige Option, die zu einem 500er HTTP-Status (Internal Server Error) führt.
    Du siehst, so eine Kleinigkeit kann gaaanz Böse sein.


    Gruß Dustin

    Huhu :)
    Also entweder machst du das mittels php oder via einer .htacces-Datei, was definitiv einfacher wäre :D
    Dazu habe ich gerade bei Google einen ganz schönen Generator gefunden^^ Gerade, gebe ich ehrlich zu, etwas faul^^


    Hoffe du kommst damit klar, ansonsten werde ich mich wohl doch aufrappeln müssen x_x


    Gruß
    Dustin

    Unter HTML5 fallen aber mittlerweile auch so Begriffe wie "File API", "Geolocation API" u.Ä.
    Auch das sind sicherlich keine HTML-Elemente sondern gehören zu JavaScript. Dennoch wird mit HTML5 mehr oder weniger die Kombination aus HTML, CSS(3) und JavaScript bezeichnet.
    Klar wäre "Web 4.0" die theoretisch richtigere (<- :D ) Bezeichnung, aber es hat sich mittlerweile einfach so eingeschlichen.


    Und mit OS war mehr oder weniger gemeint, dass man im Browser dann ein eigenes FileSystem und auch sonst alles was ein OS Auszeichnet hat.
    Natürlich braucht es auch hier noch einen richtigen Interpreter.


    PS: Was hälst du den von dem in JavaScript geschriebenen "Kernel"?
    Eigentlich ja sicher auch kein Kernel, oder? :P

    line-height ist eine CSS-Eigenschaft um die Zeilenhöhe zu bestimmen :)
    12px Schrift hat voreingestellt ungefähr 14px Zeilenhöhe. Ist unser Element nun 30px hoch, so hängt die Schrfit oben drin.
    Geben wir nun dem Element eine Zeilenhöhe (line-height) von 30px setzt sich die Schrift automatisch vertikal in die Mitte :)

    Sehr schön Waldschrat, dass du auch erklärst, wie man dein Skript nutzt :)
    Für jemanden, der es nicht schafft einen Countdown von einer Seite ein zu binden, weil er/sie sehr wahrscheinlich keinen Plan von JavaScript hat, ist dass sehr Hilfreich :)

    Die Funktion substr() ist wie folgt aufgebaut:

    Zitat

    substr ( string $string , int $start [, int $length ] )

    Die Funktion erwartet als 1. Parameter also erst einmal den String, aus dem wir einen "Substring" haben wollen. Der 2. Parameter ist die Startposition, also da wo die Tabelle Beginnt. Diesen Wert haben wir schon in einer Variabel gespeichert :wink:
    Das nächste ist die Länge, die Errechnen wir uns aus der Position vom Ende der Tabelle weniger die Startposition. Anschließend müssen wir noch die Länge des Endstückes der Tabelle dazu addieren, da wir sonst nur alles bis kurz vor vor dem Ende der Tabelle :)


    So, aber wenn ich dir noch mehr erkläre, sage und so kann ich dir gleich deinen Code schreiben und das werde ich mit 100%iger Sicherheit nicht tun.


    Gruß
    Dustin

    Heyho :)
    Öhm, solch eine Eigenschaft gibt es leider nicht.
    Du kannst nur den Text mit Margin oder Padding Manuell vertikal Zentrieren :/


    PS: Wenn du nur eine Zeile Test hast, die Vertikal Zentriert werden muss kann man hier ganz einfach die "line-height" auf die Höhe des Elementes Setzten :)

    Nach dem wir uns den Inhalt der Seite geholt haben müssen wir unsere Suchen starten :)
    Hierfür bedienen wir uns unserer strpos()-Funktion und lassen Sie nach dem Anfang einer deiner Tabellen suchen ( <table width="100%" bgcolor="#FFFFFF"> müssten die Objekte deiner Begierde ja sein?).
    Um nun alle Tabellen dynamisch zu finden lassen wir nun unser Skript solange nach dem Anfang der Tabelle Suchen, bis er genau diesen Anfang nicht mehr findet.
    Um eine Endlosschleife zu verhindern (in die Wir geraden würden, wenn wir den Dateizeiegr nicht nach vorne bewegen würden) befüllen wir unsere strpos-Funktionen immer schön mit den Rückgaben "des Gegenenstücks":

    PHP
    1. <span class="syntaxdefault">$homepage </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> file_get_contents</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'http://gratisoptehalen.nl/toon.php?rid=16&status=aangeboden'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">// Hiermit geben wir an, ab welcher Stelle wir mit dem Suchen unseres Tabellen endes beginnen wollen<br />// Unser Skript erhöht diesen Wert gleich automatisch<br /></span><span class="syntaxdefault">$posBegin </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">// Hier speichern wir die End-Position unserer Tabelle<br /></span><span class="syntaxdefault">$posEnde </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /><br />while(</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$posBegin </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$homepage</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'<table width="100%" bgcolor="#FFFFFF">'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $posEnde</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> false </span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">    $posEnde </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$homepage</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'</table>'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $posBegin</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$posEnde </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">        die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Fehler beim Parsen des Zieldokumentes. Erwartet wurde ein schließen der Tabelle, aber Dateiende erreicht."</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}</span><span class="syntaxdefault"> </span>

    Hiermit müssten wir uns durch den String durcharbeiten können und alle unsere Tabellen finden. Erweitern wirst DU das ganze dann jetzt mal um die Funktion substr( string $string , int $start [, int $length ] ) :wink:
    Ich meine du hast von mir jetzt alles bekommen, was du brauchst um diese Funktion an zu stoßen und ein bisschen denken tut denke ich ganz gut :P


    Gruß
    Dustin


    PS: Diese while-Schleife passt nur auf genau diese Tabellen-Konstellation und nur so lange wie in dieser Tabelle die wir ausfindig machen keine weiteren Tabellen geöffnet werden.