Wie gibt phpBB Variablen über die URL weiter?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
kann man mit Konstanten

Code: Alles auswählen

if (...)
Abfragen machen?

Gruß Martin
Zuletzt geändert von Martin Truckenbrodt am 16.09.2005 20:49, insgesamt 1-mal geändert.
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag von DasFragezeichen »

Warum denn nicht ? ;)

Code: Alles auswählen

if ($var == "Blabla")
   {
      ...
Kannst eben auch umwandeln ... Denn if () ist ja nicht nur Variablen entwickelt wurden :roll:
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Martin Truckenbrodt hat geschrieben:Hallo,
kann man mit Konstanten i

Code: Alles auswählen

f (...)
Abfragen machen?

Gruß Martin
Klar kann man das ... wobei nur Abfragen nach folgendem Schema Sinn machen:

Code: Alles auswählen

if ($zu_pruefende_variable == VERGLEICHS_KONSTANTE) 
{
 ...
}
... während die umgekehrte Variante

Code: Alles auswählen

if ( VERGLEICHS_KONSTANTE == $zu_pruefende_variable) 
{
 ...
}
... zwar syntaktisch noch korrekt wäre, aber vom logischen Gesichtspunkt her unsinnig, da der Wert einer Konstanten ja bekannt ist!

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
phpBB verwendet folgende Technik:

Code: Alles auswählen

if ( isset($HTTP_GET_VARS[PHPMN_EDIT]) || isset($HTTP_POST_VARS[PHPMN_EDIT]) )
	{$edit = ( isset($HTTP_GET_VARS[PHPMN_EDIT]) ) ? intval($HTTP_GET_VARS[PHPMN_EDIT]) : intval($HTTP_POST_VARS[PHPMN_EDIT]);}
	else
		{$edit = '';}

Nun habe ich das Problem, dass ich keine Zahlenwerte, sondern strings weitergebe. Kann ich das

Code: Alles auswählen

intval()
rausnehmen ohne damit fahrlässigerweise ein Sicherheitsloch zu schaffen?

Was beduetet das ? und der : mittendrinnen in der zweiten Zeile?

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Martin Truckenbrodt hat geschrieben:Nun habe ich das Problem, dass ich keine Zahlenwerte, sondern strings weitergebe.
Also dann macht intval() wenig Sinn... phpBB verwendet auch nicht
generell "diese Technik", sondern fast ausschließlich für IDs
Martin Truckenbrodt hat geschrieben:Was beduetet das ? und der : mittendrinnen in der zweiten Zeile?
Ist nur eine andere Schreibweise für -->

Code: Alles auswählen

if ( isset($HTTP_GET_VARS[PHPMN_EDIT]) )
{
	$edit = intval($HTTP_GET_VARS[PHPMN_EDIT]);
}
else
{
	intval($HTTP_POST_VARS[PHPMN_EDIT]);
}
Martin, ich will dich ja net bremsen, aber besser du schaust dir vorher
mal ein paar gestandene Mods an, bevor du richtig loslegst. easy
Zuletzt geändert von easygo am 16.09.2005 21:49, insgesamt 1-mal geändert.
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo easygo,
ich schaue direkt beim phpBB ab. Das sollte doch reichen, oder? :)

Ne, mal Ernst: Das Skript funktioniert schon länger soweit perfekt. Nur wurde es auf www.phpbb.com als MOD nicht zugelassen, weil ich mit $_GET anstatt mit Konstanten gearbeitet habe. Dies Auszumerzen ist erstmal der fast letzte Entwicklungsschritt für mich.
Learning by Doing!

Zurück zur Frage:

Code: Alles auswählen

intval()
scheint hier die SQL Injection Bremse zu sein oder sehe ich das falsch?

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Zu intval() siehe auch mein letztes Posting (editiert)

In phpBB wird ja nicht generell die von dir beschriebene Technik verwendet,
sondern fast ausschließlich beim Umgang mit diversen IDs.

Hier mal ein Beispiel dafür -->

Code: Alles auswählen

if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )
{
	$id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);
}
else
{
	$id = 0;
}
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
ist das jetzt nun die SQL Injection Bremse oder nicht? :evil:

Da ich nichts anderes gefunden habe, scheint es so zu sein. :-?

Ich habe mein Skript durchgeschaut und festgestellt, dass alle Konstaten/Variablen mit übergebenen Text nur dann für eine SQL Query in Frage kommen, wenn sie vorher auf einen bestimmten Inhalt hin überprüft wurden.
So sollte doch eine SQL Injection unmöglich sein, oder?

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
So, Skript läuft erst mal wieder.

Demo: http://www.martin-truckenbrodt.com/cgi/phpBB2/phpmn.php

Gib $_GET keine Chance! :o

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Martin Truckenbrodt hat geschrieben:Hallo,
ist das jetzt nun die SQL Injection Bremse oder nicht? :evil:

Da ich nichts anderes gefunden habe, scheint es so zu sein. :-?

Ich habe mein Skript durchgeschaut und festgestellt, dass alle Konstaten/Variablen mit übergebenen Text nur dann für eine SQL Query in Frage kommen, wenn sie vorher auf einen bestimmten Inhalt hin überprüft wurden.
So sollte doch eine SQL Injection unmöglich sein, oder?
Cool down... wenn du davon so überzeugt bist, dann ist doch alles im Grünen. :grin:

Aber wenn du mich fragst: Ich kann mir darüber kein Urteil erlauben,
denn dazu müsste ich das Skript ja wohl erstmal kennen.

BBCode Code -> dann sehn wir weiter. easy
Antworten

Zurück zu „Coding & Technik“