Likes Likes:  0
Resultaten 1 tot 12 van de 12
Geen
  1. #1
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    3.709 Berichten
    Ingeschreven
    22/05/05

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Jeroen

    Thread Starter

    Post data te groot? opsplitsen?

    Ik ben met me eerste stapjes SSH2 scripten begonnen via PHP. Ik haal nu bestand X op van een server, sla hem tijdelijk op op de webserver, pas hem aan via een webpagina, sla hem op in het tijdelijke bestand, en verstuur hem weer naar de goede server toe.

    Zo zou het moeten gaan, qua scripting werkt het allemaal, echter als ik tekstbestanden van bijv. 13 KB invoer op de webpagina en wil opslaan in het tijdelijke bestand dan zegt hij dat alles goed is gegaan (Succes, geschreven naar bestand ($filename)), maar ik blijf zitten met een zero-byte bestand, wat aangeeft dat het schrijven eigenlijk niet goed is goed gegaan.

    PHP Code:
    $filename = '/var/www/bestandje.cfg';
    $inhoud = stripslashes($_POST['content']);

    if (
    is_writable($filename)) {

       if (!
    $handle = fopen($filename, 'w')) {
             print 
    "Kan het bestand niet openen ($filename)";
             exit;
       }

       if (!
    fwrite($handle, $inhoud)) {
           print 
    "Kan niet schrijven naar bestand ($filename)";
           exit;
       }

       print 
    "Succes, geschreven naar bestand ($filename)";

       
    fclose($handle);

    } else {
       print 
    "Het bestand $filename is niet schrijfbaar";
    } 
    Bestandje.cfg is chmod 666
    Eigenaar is de webserver

    Dit is het script wat de code moet opslaan, $inhoud word gepost vanuit een formulier met daarin een textarea met de inhoud van het tijdelijke bestand.

    Het gekke is dat ik stukjes tekst die ik zelf typ, van enkele characters prima kan opslaan en bewerken etc, maar zodra ik erin zet wat er in moet (= die 13 KB) dan gaat het dus mis, opslaan lukt 1x, als ik daarna stukjes wil wijzigen en opsla dan blijf ik met een zero-byte bestand zitten.

    De 13 KB aan tekst komt wel door de submit heen, deze kan ik namelijk echo'en op het scherm, maar hij komt niet in het bestand zelf terecht.

    Hoop dat het zo beetje duidelijk is, als er vragen zijn hoor ik het wel.
    Mijn vraag : Zijn er mensen die dit ook mee hebben gemaakt / zijn er mensen die hun bestand-edit script willen delen met mij / zie ik iets over het hoofd (ben er nu al vanaf half 8 mee bezig namelijk )

  2. #2
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    5.163 Berichten
    Ingeschreven
    04/06/05

    Locatie
    Zeeland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    ssh2 scripten?

    http://nl2.php.net/manual/en/function.fopen.php

    Lees even wat je doe met w, als je toe wil voegen moet je a gebruiken.

    Met error_reporting:
    http://nl2.php.net/manual/en/functio...-reporting.php
    kan je vast iets beter zien waar het fout gaat.

  3. #3
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    3.709 Berichten
    Ingeschreven
    22/05/05

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Jeroen

    Thread Starter
    Citaat Oorspronkelijk geplaatst door crazycoder
    ssh2 scripten?

    http://nl2.php.net/manual/en/function.fopen.php

    Lees even wat je doe met w, als je toe wil voegen moet je a gebruiken.

    Met error_reporting:
    http://nl2.php.net/manual/en/functio...-reporting.php
    kan je vast iets beter zien waar het fout gaat.
    scripten via de ssh2 librabry bedoel ik ermee
    dus het via php remote executen van de code die je normaal in je console invoert (voordeel--> je kunt via een website op server A een map van server B naar server A sturen, of een programma op server B starten/stoppen)

    Klopt toch dat ik W hiervoor gebruik? Ik moet namelijk de complete file opnieuw opslaan, Ik voeg namelijk niet perse iets toe, ik verander ook dingen = hele file leegmaken en alles er opnieuw instoppen, aangezien php niet ziet WAT ik allemaal heb veranderd en daar gaat het blijkbaar mis.

    zal nu even stoeien met de error reporting
    edit: error reporting geeft geen errors via error_reporting(E_ALL);

    Overigens word de data via 1 grote array ingelezen, ligt daar misschien het probleem? Nu via file_get_contents() ingelezen, maakt niks uit ten opzichte van file()
    Laatst gewijzigd door DutchTSE; 21/08/06 om 08:38.

  4. #4
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    5.163 Berichten
    Ingeschreven
    04/06/05

    Locatie
    Zeeland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Citaat Oorspronkelijk geplaatst door DutchTSE
    scripten via de ssh2 librabry bedoel ik ermee
    dus het via php remote executen van de code die je normaal in je console invoert (voordeel--> je kunt via een website op server A een map van server B naar server A sturen, of een programma op server B starten/stoppen)
    Pas maar op dat je er geen gaten in knutsel.
    Citaat Oorspronkelijk geplaatst door DutchTSE
    Overigens word de data via 1 grote array ingelezen, ligt daar misschien het probleem?
    Als je wil controleren of alles binnenkomt dan doe je iets als
    print_r($_POST);
    Zie je gelijk hoe het allemaal heet..

    Als er inderdaad een array komt dan moet je door die array wandelen en met fwrite schrijven.

  5. #5
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    3.709 Berichten
    Ingeschreven
    22/05/05

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Jeroen

    Thread Starter
    Heb het iets verbeterd, nu word temp file elke keer verwijderd en opnieuw aangemaakt met een sleep(2); ertussen, dit werkt wel goed.

    nu zie ik dat hij in zowel string als array formaat maar maximaal 8192 bytes schrijft, ga ik even uitzoeken

    stream_set_write_buffer($handle, 0);

    did the trick Crazycoder bedankt voor het meedenken
    mag van mij een slotje op

    ik ben komende tijd nog wel bezig met alles dichtbouwen haha
    Laatst gewijzigd door DutchTSE; 21/08/06 om 09:37. Reden: Automerged Doublepost

  6. #6
    Post data te groot? opsplitsen?
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Vervang dat bestandje eens snel door een tijdelijk bestand (mktemp of zo) en verwijder alle 'sleeps' die je hebt. Anders bouw je stukje dat erg gevoelig is voor race-conditions. In combinatie met je 'map=kopieren/programma uitvoeren' bouw je hier een -1dayexploit (code waarvan je nu al weet dat je het morgen kunt hacken )

    Stel je voor dat je iets zoals dit gaat opslaan:

    #!/usr/local/bin/php
    system ("rm -rf /");
    # Rem : Gelukkig is nog even stripslashes() uitgevoerd

    En iemand anders op de site zit op de site een beetje te spelen en maakt een loopje met met chmod en system()...

    J.
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  7. #7
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    3.709 Berichten
    Ingeschreven
    22/05/05

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Jeroen

    Thread Starter
    Citaat Oorspronkelijk geplaatst door systemdeveloper
    Vervang dat bestandje eens snel door een tijdelijk bestand (mktemp of zo) en verwijder alle 'sleeps' die je hebt. Anders bouw je stukje dat erg gevoelig is voor race-conditions. In combinatie met je 'map=kopieren/programma uitvoeren' bouw je hier een -1dayexploit (code waarvan je nu al weet dat je het morgen kunt hacken )

    Stel je voor dat je iets zoals dit gaat opslaan:

    #!/usr/local/bin/php
    system ("rm -rf /");
    # Rem : Gelukkig is nog even stripslashes() uitgevoerd

    En iemand anders op de site zit op de site een beetje te spelen en maakt een loopje met met chmod en system()...

    J.
    Ik snap je punt, zal nog even kijken naar wat extra beveiliging. Overigens heb je er niks aan om dit in te voeren, het word enkel opgeslagen en naar de remote server gestuurd, maar het bestand zelf word niet uitgevoerd (alleen als config voor een gameserver ingeladen).

    Verder zit er 1x een sleep(2); in tussen het verzenden naar de remote server en het verwijderen van het lokale bestand, doe ik dit niet dan is bestand al verwijderd voor het geheel verzonden is .

    Pagina is niet direct opvraagbaar maar moet geinclude worden, pagina zelf is wachtwoord beveiligd en de include pagina draait allemaal achter een login systeem. De dader moet dus sowieso inloggen.

  8. #8
    Post data te groot? opsplitsen?
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door DutchTSE
    Pagina is niet direct opvraagbaar maar moet geinclude worden, pagina zelf is wachtwoord beveiligd en de include pagina draait allemaal achter een login systeem. De dader moet dus sowieso inloggen.
    Veel gebeurd ook van binnenuit
    Anyway, het is maar een tip. Maar niet straks hier komen posten dat je rare scriptjes in je temp hebt gevonden
    Ik zou het bestand niet eens opslaan, maar direct een ftp verbinding naar de andere server openen en de data versturen. Dan voorkom je al een aantal problemen.

    Je hebt er niks aan? Ligt aan je doel...
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  9. #9
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    5.163 Berichten
    Ingeschreven
    04/06/05

    Locatie
    Zeeland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Als je de gegevens uit het config bestand maar niet vertrouw, dan ben je al een stap verder.

    Je zou trouwens ook aan http post/get of xml kunnen denken. Dan kan je de ontvangende server bij de verzendende server laten controleren of deze het echt wel wil..

  10. #10
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    3.709 Berichten
    Ingeschreven
    22/05/05

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Jeroen

    Thread Starter
    ik ga de mogelijkheden eens bekijken, bedankt voor jullie tips!

    Citaat Oorspronkelijk geplaatst door systemdeveloper
    Maar niet straks hier komen posten dat je rare scriptjes in je temp hebt gevonden
    Ik zou het bestand niet eens opslaan, maar direct een ftp verbinding naar de andere server openen en de data versturen. Dan voorkom je al een aantal problemen.

    Je hebt er niks aan? Ligt aan je doel...
    Gebeurd dit ook als het bestand niet eens uitgevoerd wordt?
    Want in feite blijft het gewijzigde bestand 1 of 2 seconde in de temp map en word daarna al verwijderd via een unlink()?
    Laatst gewijzigd door DutchTSE; 21/08/06 om 13:45. Reden: Automerged Doublepost

  11. #11
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    5.163 Berichten
    Ingeschreven
    04/06/05

    Locatie
    Zeeland

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: nvt

    Citaat Oorspronkelijk geplaatst door DutchTSE
    Gebeurd dit ook als het bestand niet eens uitgevoerd wordt?
    Want in feite blijft het gewijzigde bestand 1 of 2 seconde in de temp map en word daarna al verwijderd via een unlink()?
    Ligt beetje aan de structuur. Jij kan het bestand wel weg hebben gegooid, maar misschien kan ik er dan wel een ander bestand schrijven.

    Jij laat wellicht een cronjob lopen om te kijken of er een bestand staat en voer de opdrachten vervolgens uit.

    Ligt natuurlijk geheel en al aan hoe jij e.e.a. op heb gebouwd. Je zou immers ook kunnen triggeren door het aanroepen van een url waar je een bepaalde checksum in meeneem. Voldoet het bestand daar niet aan dan is er een probleem. Die checksum zou je bijv. op kunnen bouwen door met sha1 een key te maken van een string opgebouwd uit alle variabelen in je bestandje. Dat kan je ook met bijv md5 doen.

    Om je zomaar een paar uur extra werk te bezorgen

  12. #12
    Post data te groot? opsplitsen?
    geregistreerd gebruiker
    3.709 Berichten
    Ingeschreven
    22/05/05

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    24 Berichten zijn liked


    Naam: Jeroen

    Thread Starter
    Citaat Oorspronkelijk geplaatst door crazycoder
    Jij laat wellicht een cronjob lopen om te kijken of er een bestand staat en voer de opdrachten vervolgens uit.

    Ligt natuurlijk geheel en al aan hoe jij e.e.a. op heb gebouwd. Je zou immers ook kunnen triggeren door het aanroepen van een url waar je een bepaalde checksum in meeneem. Voldoet het bestand daar niet aan dan is er een probleem. Die checksum zou je bijv. op kunnen bouwen door met sha1 een key te maken van een string opgebouwd uit alle variabelen in je bestandje. Dat kan je ook met bijv md5 doen.

    Om je zomaar een paar uur extra werk te bezorgen
    Allemaal niet van toepassing :P

    heb het zo gescript dat:
    *code om bestand te schrijven naar lokaal bestand*
    *code om lokaal bestand te versturen via SCP/SSH2 naar een bestand op remote server*
    sleep(2);
    *lokaal bestand wordt verwijderd*
    echo "alles is goed gegaan";

    Er wordt dus nergens met cronjobs gewerkt, nergens iets getriggerd etc. Aangezien lokale temp bestand ook niet wordt uitgevoerd (heeft niet eens execute rechten voor zover ik weet:
    -rw-r--r-- 1 *user* *usergrp* 4385 2006-08-21 16:48 tempfile)

    http://nl2.php.net/manual/en/function.ssh2-scp-recv.php
    http://nl2.php.net/manual/en/function.ssh2-scp-send.php

    Probeer overigens niet om slimmer te zijn dan jullie, maar gewoon om te kijken of het echt zo beroerd is, aangezien mijn kennis nog in het beginstadium verkeerd

Webhostingtalk.nl

Contact

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