Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Captcha PHP Problem

Mitglied: 46356

46356 (Level 2)

29.08.2007, aktualisiert 17.09.2007, 5100 Aufrufe, 12 Kommentare

Hallo

Ich habe ein kleines Problem mit meinem Bot Schutz...
Alle Codes stimmen bis auf keinen und 1...

Ich glaube meine elseif abfrage ist falsch aber ich komme nicht weiter... Ich saß den ganzen Vormittag an diesem Problem, konnte es aber nicht lösen...

Hier der Code:

Falls ihr noch mehr Code braucht, sagt bescheid...

Danke Alex

P.S.: Mein Captcha ist eine Zeichenkette!
Mitglied: SlainteMhath
29.08.2007 um 14:33 Uhr
Was willst Du denn damit

prüfen?

(!isset($_POST['code']) ergibt true oder false, je nachdem ob $_POST['code'] gesetzt wurde oder nicht.

Diese Ergebniss verlgeichst Du dann mit dem Inhalt von $_SESSION['code'] ...

Ich kenn den Rest vom Code nicht, aber sollte da nicht ein

ausreichen?
Bitte warten ..
Mitglied: 46356
29.08.2007 um 14:38 Uhr
Hallo!

Funkioniert leider nicht!
Den ganzen Code:

Lg. Alex
Bitte warten ..
Mitglied: SlainteMhath
29.08.2007 um 14:51 Uhr
Sieht fast so aus, als wärst Du Dir nicht über den Namen der POST Variable einig:

....<input type="text" name="captcha" size="7.5"> ...
.... $_POST['code']... $SESSION['code']...
... unset($_SESSION['captcha_code']);...


Und nochwas: Les Dir mal ein bischen was über sicheres Programmieren von PHP Scripts an.

Überleg Dir mal, was passiert wenn Dir hier:
jemand '; DELETE FROM users WHERE Nickname<>' in das Nickname Feld im Webformular rein schreibt
Bitte warten ..
Mitglied: Spao
29.08.2007 um 14:53 Uhr
so hab mich mal durch dein code gewühlt ^^

also
1.) sehe nirgendes das die $_SESSION['code'] gefüllt wird. mit was willst du die dann vergleichen ? ( vielleicht in captcha.php ? )

2.) ändere
}elseif(!isset($_POST['code']) == $_SESSION['code'])

in

}elseif(!isset($_POST['code']) || $_POST['code'] != $_SESSION['code'])

3.)
wenn eine der Bedingungen wahr wird löschst du eine andere session
unset($_SESSION['captcha_code']);
müsst da nich $_SESSION['code'] in $_SESSION['captcha_code'] geändert werden ?



kannst nochmal die captcha.php posten ? wenn es noch nicht geht ?
Bitte warten ..
Mitglied: EvilMoe
29.08.2007 um 14:56 Uhr
Ohh das solltest du aber so schnell wie möglich beheben! Stichwort SQL-Injection!
Verwende bevor du die Variablen an die DB schicks "mysql_real_escape_string". Ich habe dafür diese Funktion:
Bitte warten ..
Mitglied: 46356
29.08.2007 um 15:52 Uhr
Hallo!

Danke für eure Antworten!

Hier die captcha.php:
Mfg. Alex
Bitte warten ..
Mitglied: SlainteMhath
29.08.2007 um 15:58 Uhr
Hier die captcha.php:
Ok, nach meinem Dafürhalten sollte dann das elseif so aussehen:
Und bereinige mit EvilMoe's Code alle Eingaben aus dem Formular!

/edit: Tippfehler beseitigt.
Bitte warten ..
Mitglied: 46356
29.08.2007 um 16:16 Uhr
Hallo!

Funktioniert trotzdem noch nicht: Du hast die Sicherheitsprüfung nicht bestanden!! Zurück Benutzername alexbreuss wurde erstellt. Login

Was ist noch falsch?

Lg. Alex

P.S.: Könnt Ihr mir ein gutes Buch zum Thema Sicherheit mit PHP-Scripten empfehlen?
Bitte warten ..
Mitglied: Spao
30.08.2007 um 06:52 Uhr
lass dir mal die 2 variablen

$_POST['captcha']
$_SESSION['captcha_code']

mit echo ausgeben. Sind die vielleicht unteschiedlich ?
Bitte warten ..
Mitglied: Guenni
10.09.2007 um 16:25 Uhr
Selbst wenn die Captcha-Überprüfung funktionieren sollte,
würde das Skript nicht korrekt arbeiten.

Nach der Captcha-Überprüfung geht es nämlich munter weiter mit dem
Anlegen des neuen Users.

Daher auch die Ausgabe, siehe oben:

Funktioniert trotzdem noch nicht:
Du hast die Sicherheitsprüfung nicht bestanden!! Zurück
Benutzername alexbreuss wurde erstellt. Login

Denn woher soll der PHP-Interpreter wissen, dass das Skript gestoppt werden soll,
falls der übertragene Captcha-Code falsch ist? Der Interpreter überprüft nur die
Syntax, nicht aber die Logik des Skript.

Ich muß dem Interpreter also auch sagen, was er im negativem Fall machen soll:

Zum zweiten ist eine solche simple Überprüfung ...

... ziemlich sinnfrei, weil auch die Eingabe eines oder mehrerer Leerzeichen
eine korrekte Eingabe ist. Es würden also im Falle einer positiven
Captcha-Überprüfung einfach Datenfelder mit Leerzeichen in der
Datenbank angelegt!

Die Eingabe sollte also besser über einen regulären Ausdruck
auf erlaubte/nicht erlaubte Zeichen überprüft werden.

Ich habe das Skript oben mal ein wenig verkürzt(wg. Übersicht) und
einige Variablen meiner Umgebung angepasst, nur um die Funktionalität
zu überprüfen.


Grüße
Günni
Bitte warten ..
Mitglied: 46356
17.09.2007 um 15:42 Uhr
Hallo Günni!

Du hast mir mit deinem Script sehr geholfen...

Leider werden bei mir die Benutzerdaten nicht in meinen SQL Datenbank geschrieben!

Vielleicht kannst du mir helfen...

Script:

Lg. Alex
Bitte warten ..
Mitglied: 46356
17.09.2007 um 21:25 Uhr
Habe das Problem gelöst!

Es lag an der "Instert into ..." eingabe...

Lg. Alex
Bitte warten ..
Ähnliche Inhalte
PHP
PHP statements mit PHp erzeugen
gelöst Frage von LorderichPHP4 Kommentare

Hallo zusammen, ich habe eine Datei, in welcher per switch und case die Webseiten definiert werden, welche bei Aufruf ...

PHP
PHP 5.3 nach PHP 5.6 portieren
Frage von nippon-tussiPHP5 Kommentare

Ich habe hier ein altes Projekt, das seit Jahren unter php 5.3 auf einem shared host bei all-inkl läuft. ...

PHP
PHP Anfängerfrage
gelöst Frage von devazubiPHP6 Kommentare

Moin Kollegen, ich fange gerade mit Programmieren an und habe mal eine Frage zu PHP. Ich bin gerade dabei ...

PHP
PHP MySQL Login
Frage von YanmaiPHP7 Kommentare

Hallo ihr Administratoren, ich habe eine Datenbank, in der alle User des Netzwerkes enthalten sind. Wenn ein User sich ...

Neue Wissensbeiträge
Microsoft
SMB Compression: Deflate your IO
Ticker von Dani vor 1 TagMicrosoft

Hi folks, Ned Pyle guest-posting today about SMB Compression, a long-awaited option coming to Windows, Windows Server, and Azure. ...

Virtualisierung

Citrix end of availability (EOA) of perpetual licenses for the on-prem Workspace products

Ticker von Dani vor 1 TagVirtualisierung

Moin, der nächste Marktführer steigt von Kaufen auf Mietzwang um :-( What did Citrix announce on July 1, 2020? ...

Festplatten, SSD, Raid
Stop Error 0x0000007B (INACCESSIBLE BOOT DEVICE)
Anleitung von evinben vor 1 TagFestplatten, SSD, Raid

Systemstand Windows 7, 64-Bit, einschließlich allen Updates bis 10.09.2020 DELL Latitude E6330 PCI-Bus IRQ-Kanal 19: Standard AHCI 1.0 Serieller-ATA-Controller IRQ-Kanal ...

Sicherheit
NSA: UEFI und Secure Boot einsetzen
Ticker von sabines vor 2 TagenSicherheit3 Kommentare

Hilfreicher Heise Artikel zu UEFI und Secure Boot Tipps der NSA Näheres hier: NSA Bericht

Heiß diskutierte Inhalte
Sicherheits-Tools
Passwortmanager Vorschläge
Frage von BelmontSicherheits-Tools20 Kommentare

Servus, Ich bin aktuell auf der Suche nach einem cloudbasiertem Passwortmanager mit bestimmten Features: 1. LDAP-Anbindung bzw. Azure AD ...

Windows Server
Server zum üben
Frage von m.sunguralpWindows Server13 Kommentare

Guten Tag, ich würde mir gerne einen Server einrichten, in dem ich einfach rumtesten kann und Wissensstand erweitern kann. ...

Monitoring
2 Nutzer gleichzeitig auf einem Server mit gleichem Screen-Programm arbeiten
Frage von FreelinerMonitoring12 Kommentare

Hallo in die Runde. Frage: Ist es möglich, dass 2 Nutzer gleichzeitig auf einem Server am gleichen Desktop angemeldet ...

Windows Server
RDP zeigt nur blauer Bildschirm nach der Anmeldung!?
Frage von babyloniaWindows Server10 Kommentare

Hi, seit gestern, kommt nur die Start-Seite nach der Anmeldung an Windows 2012 Terminal Server per RDP!! Hat jemand ...

Administrator Magazin
09 | 2020 Ein Internetauftritt ist für Firmen heute eine Selbstverständlichkeit, doch gilt es beim Betrieb der entsprechenden Server einiges zu beachten. Im September beleuchtet das IT-Administrator Magazin deshalb das Schwerpunktthema "Webdienste und -server". Darin lesen Sie unter anderem, wie Sie Webapplikationen sinnvoll überwachen und welche Open-Source-Managementtools ...
Best VPN