link auf php funktion direkt aus <a href>
aNtraXx 10.11.2003 - 15:09 1499 24
aNtraXx
trailer park king
|
so. also ich möchte gerne einen direkten link auf eine php funktion machen. Ohne dass ich ein switch dazwischen hänge also zb in der art: <a href="<?echo page.php?action=1?>">...</a>
sondern eher sowas <a href="<?echo $PHP_SELF."?php_funktion()"?>">...</a>
jedoch funktioniert letzteres nicht. hätte da wer ne anständige lösung? tia bernhard
|
watchout
Legendundead
|
so.
also ich möchte gerne einen direkten link auf eine php funktion machen. Ohne dass ich ein switch dazwischen hänge also zb in der art:
<a href="<?echo page.php?action=1?>">...</a>
sondern eher sowas
<a href="<?echo $PHP_SELF."?php_funktion()"?>">...</a>
jedoch funktioniert letzteres nicht.
hätte da wer ne anständige lösung?
tia bernhard das _kann_ auch nicht gehn, aber was sowohl sicher, als auch genauso in der anwendung wäre wäre folgendes: x.php?call=a $call = 'myfunction_'.$_GET['call']; $call(); edit: die funktionen wären dann zb: myfunction_a(), myfunction_b(), myfunction_fritz(),... dadurch kann nicht ungewollt eine php-function aufgerufen werden auf die der benutzer keinen zugriff haben darf, man braucht nur nnoch eine abfrage davor, ob die function überhaupt existiert, sonst gibts nen error: $call = 'myfunction_'.$_GET['call'];
if(function_exists($call))
{
$call();
}
Bearbeitet von watchout am 10.11.2003, 15:45
|
aNtraXx
trailer park king
|
irgendwie geht das bei mir nicht... <?
$call = $_GET['call'];
if(function_exists($call))
{
$call();
}
?>
<a href="<?echo left.php?call=check_login ?>">
Login
</a>
im grunde ist es ja aber wieder fast genauso umständlich wie ein switch. edit so jetzt gehts...  <a href="<?echo $PHP_SELF."?call=check_login" ?>">
Login
</a>
allerdings kann ich hier die variablen die ich in einen input schreibe nicht mitnehmen... so wie in einem form meine ich.
Bearbeitet von aNtraXx am 11.11.2003, 07:40
|
Maehmann
OC Addicted
|
warum nicht? ... dann steht sie halt im $_POST Array drin ...
|
aNtraXx
trailer park king
|
hab ich auch shcon probiert. geht leider auch nicht
|
funka
Legend ex-prophet(down below)
|
oh mann bitte mach zumindest einen check obs eine funktion ist die er machen darf wennst den usre schon remote coden laesst
|
watchout
Legendundead
|
antraxx, wie der funka schon angesprochen hat ist es kein zufall dass ich so ein langes prefix gewählt habe... für maximale sicherheit ist natürlich so etwas in der art notwendig: <?
$call = $_GET['call'];
$allowed = array('check-login','zweiteerlaubtefunc','dritte','usw');
if(function_exists($call) AND in_array($call,$allowed,TRUE))
{
$call();
}
?>
ausserdem werden weitere variablen so übergeben: <a href="<?=$_SERVER['PHP_SELF'] ?>?call=xxx&var1=val1&var2=val2">Clicky</a>
ps:und das: <a href="<?echo left.php?call=check_login ?>"> ging nur deswegen nicht weil du quotes (") vergessen hast
|
aNtraXx
trailer park king
|
das mit den quotes hab ich auch schon bemerkt. hat leider ned funktioniert... naja ob ich das maxiumum an sicherheit brauche? oder OB ich es überhaupt brauche. ich will ja dann auch noch einen leserlichen code
|
funka
Legend ex-prophet(down below)
|
naja ob ich das maxiumum an sicherheit brauche? oder OB ich es überhaupt brauche. ich will ja dann auch noch einen leserlichen code  oh mann was ist daran unleserlich was dir watch gepostet hat unueberpruefte php funktion uebergeben lassen und dann noch extra deren parameter ...
|
Rektal
Here to stay
|
das mit den quotes hab ich auch schon bemerkt. hat leider ned funktioniert...
naja ob ich das maxiumum an sicherheit brauche? oder OB ich es überhaupt brauche. ich will ja dann auch noch einen leserlichen code  Die Frage stellst du dir spaetestens dann wieder wenn dir jemand reingepfuscht hat und z.b. Befehle wie 'exec("rm -Rf /");' ausfuehrt. Unueberpruefte Benutzer-Eingabe (und das ist eben nicht nur an Formulare gebunden, sondern jegliche Art von Information die man in seiner Applikation von extern entgegen nimmt) ist in 99% der Faelle Ursache wenn etwas Boeses[tm] passiert.
|
aNtraXx
trailer park king
|
wtf... der kann dan echt über ein inputformular mit sochen befehlen rumpfuschen?
|
Ringding
Pilot
|
Natürlich.
Such mal nach SQL Injection, da findet man haufenweise Material drüber, ist ziemlich ähnlich. Damit kann man die komplette Datenbank ruinieren.
|
vossi
been there, done that
|
2 kleine Tipps meinerseits 1) http://www.php.net/eval2) die einfachste möglichkeit Forms zu verändern ist deine Form in ein Frame zu laden und per JavaScript die Frame Inhalte deiner Form zu ändern bzw. gleich die ganze Form von Hand verschicken .. hat mal n Freund von mir bei meinem GBook gemacht  (kleine Gehversuche als Möchtegern Hacker  )
|
watchout
Legendundead
|
ad 1: eval? :cordless: wenn du eval verwendest brauchst dir um mysql-injection tatsächlich keine gedanken mehr machen... ad 2: es wird immer lustiger...
|
vossi
been there, done that
|
ey was soll der kak mist? ich mach kebap aus dir! eval kannst auch so benutzen .. wennst du drüber abhaust dann erklär mir auch gleich wieso .. und zum zweiten teil .. was war daran so lustig? erklär mir des bitte dann kann ich in ruhe und frieden sterben gehn ...
|