Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Imageerstellung

Empfohlene Antworten

Veröffentlicht

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?

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]

@kills: seh ich das jetzt falsch bzw. kapier ich das net richtig? Eine Maschine könnte sich doch jetzt aus dem img-Tag den "Code" auslesen, da er dort im Textformat vorliegt.

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.

ah, okay, danke für die Hinweise!

Also entfällt auch das "aufräumen"...

Super, danke!

auf die einfachste Lösung kommt man mal wieder nicht... ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.