Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

ich will für ein Onlineprojekt einen sicheren login programmieren.

Ein Bestandteil dieses Logins ist, dass ein Bild mit zufälligem String erzeugt wird, den der User zur kontrolle abtippen muss.

ich habe nun folgendes php-script geschrieben (testzwecke):

<?php
header("Content-type: image/png");
$image = imageCreateFromPng('test.png');

imagestring($image,12,30,9,'test123',imagecolorallocate($image,0,0,0));

imagepng($image);
?>[/PHP]

mit imagepng kann ich optional auch in eine Datei schreiben.

Meine Umgebung besteht zum einen aus den Scripten und zum anderen aus Smarty-Templates.

Ich möchte die Ausgabe des Bildes also an das Template übergeben, da es sonst nicht mit dem Design klappt.

Jetzt die Frage: wie mache ich das am besten?

Eine Möglichkeit wäre, das bild ans Template zu übergeben per assign, aber ich bezweifle das das so funktioniert.

Eine andere Möglichkeit ist, das Bild auf die Platte zu schreiben (evtl eigenes verzeichniss, wegen sicherheit). Als Dateiname stelle ich mir einen Mix aus Session_id und Timestamp vor, so wäre sichergestellt, das es keine Namenskonflikte gibt...

Ausserdem: wie entsorge ich bei dieser Möglichkeit den anfallenden Datenmüll sicher?

Hat hier jemand Erfahrungen mit so einem System und will mir einen denkanstoß geben?

Geschrieben

du könntest das script auch direkt aus einem php script jedes mal neu generieren:

img.php:


<?php
header("Content-type: image/png");
$image = imageCreateFromPng('test.png');

imagestring($image,12,30,9,$_GET["teststring"],imagecolorall ocate($image,0,0,0));

imagepng($image);
?>
[/PHP]

und im template dann so:

[code] <img src="img.php?teststring=12-43TE-ADSF-242"> [/code]

Geschrieben

Die Idee mit dem img-src ist schon gut. Aber ich würde aber keine Angaben (ausser eventuell die SessionID) ranhängen sondern in einer Session ablegen.

Du kannst nämlich dann später die Eingabe mit dem Wert in der Session vergleichen und must dir keine Gedanken über irgendwelche Dateien machen. Wichtig dabei ist aber, dass du sichergehst, dass die Session servergespeichert ist. Wenn du nämlich die Session-Daten im Cookie speicherst, dann ist das das alles vergebene Liebesmüh.

Einfach noch einfügen:


session_start();
$_SESSION['image_check'] = unique();
[/PHP]

Auf der nächsten Seite dann abfragen.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...