PHP zonder executie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sven Thijssen

Sven Thijssen

14/08/2014 23:46:42
Quote Anchor link
Hoi allemaal

Ik had een vraag betreffende PHP. Ik had graag in mijn variabele PHP en MySQL verwerkt zonder deze uit te voeren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$bloopp
= "'; \$_GET['dtrade_id'] = \"$dtrade_id\"; include (\"https://www.bloopp-it.com/dtrade/itemshare.php\"); echo'";
?>

Later, nadat deze in de database is toegevoegd, met $bloopp terug weergegeven worden in een echo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<div class="text">'.$bloopp.'</div>';
?>

Is dit haalbaar en zou iemand mij een zetje kunnen geven a.u.b.? Heb verscheidene andere manieren geprobeerd door delen weg te laten, andere aanhalingstekens te gebruiken, echter zonder succesvol resultaat.

Alvast bedankt voor de hulp!
- Sven
Gewijzigd op 14/08/2014 23:54:41 door Sven Thijssen
 
PHP hulp

PHP hulp

23/12/2024 21:12:08
 
- Ariën  -
Beheerder

- Ariën -

14/08/2014 23:49:09
Quote Anchor link
Je kan een variabele met een \ escapen zodat hij niet uitgevoerd wordt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "\$lol"; ?>


Ik neem aan dat je dit bedoeld?
Zet je code anders tussen code-tags om het geheel beter leesbaarder te maken.
Gewijzigd op 14/08/2014 23:50:03 door - Ariën -
 
Sven Thijssen

Sven Thijssen

14/08/2014 23:57:44
Quote Anchor link
Bedankt om me te willen helpen!

Niet helemaal, denk ik. Ik heb de code net een beetje aangepast (o.a. al met de backslash). Ik had graag in de variabele bloopp de echo, waarin hij later wordt geplaatst, gestopt (vandaar ';). Dan, inderdaad, zonder de variabele uit te voeren $_GET['dtrade_id'] = \"$dtrade_id\" ; include (\"https://www.bloopp-it.com/dtrade/itemshare.php\"); gevolgd door het tweede deel van de echo (vandaar echo ').
Gewijzigd op 14/08/2014 23:58:23 door Sven Thijssen
 
- Ariën  -
Beheerder

- Ariën -

14/08/2014 23:59:58
Quote Anchor link
Kijk eens naar eval().
En denk ook eens na of je echt PHP wilt uitvoeren vanuit je database.
 
Sven Thijssen

Sven Thijssen

15/08/2014 00:14:40
Quote Anchor link
Dat lijkt wel een goede oplossing te zijn, eval(), maar ik kan $bloopp niet in de database toevoegen. Hoe komt dit?

Dit is de huidige code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$bloopp
= "\$_GET['dtrade_id'] = '\$dtrade_id'; include ('https://www.bloopp-it.com/dtrade/itemshare.php');";
            
eval("\$bloopp = \"$bloopp\";");
?>
 
- SanThe -

- SanThe -

15/08/2014 00:27:14
Quote Anchor link
Sven Thijssen op 15/08/2014 00:14:40:
maar ik kan $bloopp niet in de database toevoegen. Hoe komt dit?

En waarom niet?

Is het zo niet makkelijker?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$bloopp
= '$_GET["dtrade_id"] = $dtrade_id; include("https://www.bloopp-it.com/dtrade/itemshare.php");';
?>

En include() met een complete url gaat vast niet werken.
 
Sven Thijssen

Sven Thijssen

15/08/2014 00:39:00
Quote Anchor link
Ja, het werkt feilloos! $bloopp wordt aan de database toegevoegd! Bedankt aan beiden voor jullie hulp!
 
Ivo P

Ivo P

15/08/2014 10:16:01
Quote Anchor link
http://php.net/eval

Quote:
If eval() is the answer, you're almost certainly asking the
wrong question.
-- Rasmus Lerdorf, BDFL of PHP
 
Ozzie PHP

Ozzie PHP

15/08/2014 12:59:18
Quote Anchor link
Inderdaad, wat Ivo zegt. Wat je nu aan het doen bent, lijkt me niet de juiste weg om te bewandelen.
 
Sven Thijssen

Sven Thijssen

15/08/2014 16:17:31
Quote Anchor link
Mmm, dus ik kan (zoals door -Aar- reeds was vermeld) beter geen PHP in de databse opslaan voor veiligheidsredenen? Ik zag het als enige oplossing om $bloopp variabel te houden, aangezien https://www.bloopp-it.com/dtrade/itemshare.php ook veranderlijk is a.d.h.v. $_GET["dtrade_id"].

Misschien heb ik een sprongetje te ver gemaakt en kan ik best $bloopp niet variabel maken door geen PHP in de databsae te plaatsen?
 
Ivo P

Ivo P

15/08/2014 16:25:52
Quote Anchor link
beschrijving van je risico:

wat als iemand de url weet aan te passen naar

http://evil-hacker.com/aanval.txt

als daarin php code staat, dan wordt dat niet uitgevoerd op evil-hacker.com, maar keurig in jouw script geplaatst.

en ook nog uitgevoerd!
 
Sven Thijssen

Sven Thijssen

15/08/2014 16:30:24
Quote Anchor link
Oei, dat is absoluut niet wat ik zou willen. Zal de get en include e.d. netjes laten wegvallen!

Nu heb ik ook een idee wat er mis kan gaan...
Bedankt voor de uitleg. :)
 
Ozzie PHP

Ozzie PHP

15/08/2014 17:34:48
Quote Anchor link
Sven Thijssen op 15/08/2014 16:17:31:
Misschien heb ik een sprongetje te ver gemaakt en kan ik best $bloopp niet variabel maken door geen PHP in de databsae te plaatsen?

Een database is bedoeld om data (gegevens) in op te slaan. Daarom heet het ding ook een DATAbase ;) Het is niet bedoeld om code in op te slaan.
 
Willem vp

Willem vp

15/08/2014 18:39:00
Quote Anchor link
Ozzie PHP op 15/08/2014 17:34:48:
Een database is bedoeld om data (gegevens) in op te slaan. Daarom heet het ding ook een DATAbase ;) Het is niet bedoeld om code in op te slaan.

Zeg dat ook eens tegen de ontwerpers van MySQL (en waarschijnlijk elk ander DBMS). Code van stored procedures wordt gewoon in de database opgeslagen. ;-)

En als je er een beetje over gaat doordenken, slaat zelfs elk versiebeheersysteem alle code op in een database. Ik zie daar ook geen problemen in. Code die in een database staat is eenvoudig toegankelijk vanaf andere systemen. Hooguit is het wijzigen van de code iets lastiger dan wanneer het gewoon in een tekstbestand staat, maar dat kan ook een voordeel zijn.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.