[php] Alternatief CHMOD 777

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 05-10-2024
Hallo,

Ik zat even te denken over een alternatief voor het beruchte chmod 777. Dit wordt vaak gebruikt voor directories waar bestanden in geuploaded moeten worden (door mij teminste wel).

Is het niet veiliger om het uploadenen deels aan ftp over te laten? Je bestanden komen toch eerst in een temp (vaak /tmp) directory te staan en vanuit daar kun je ze uploaden naar je gewenste map. Ik heb zelf een stukje geschreven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?
function UploadFile($source_file, $destination_dir, $destination_file) {
    $ftp_server = $CMS['instellingen']['ftp_server'];
    $ftp_user = $CMS['instellingen']['ftp_user'];
    $ftp_pass = $CMS['instellingen']['ftp_pass'];

    $conn_id = ftp_connect($ftp_server); 

    $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass); 

    if ((!$conn_id) || (!$login_result)) { 
        $CMS['errors'][] = 'Fout tijdens het verbinden met de FTP server';
        return false;
    }

    ftp_chdir($conn_id, $destination_dir);

    $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

    if (!$upload) {
        $CMS['errors'][] = 'Fout tijdens het uploaden van het bestand '.$destination_file;
        return false;
    } else {
        return true;
    }

    ftp_close($conn_id);
}

if ($_POST['submit_form']) {
    if (empty($_FILES['source_file']['tmp_name'])) {
        msg('Fout', 'U moet wel een bestand kiezen');
    } else {
        if (UploadFile($_FILES['source_file']['tmp_name'], $CMS['instellingen']['root_dir'].'/uploads', $_FILES['source_file']['name']);
            msg('Geplaatst', 'Het bestand is in de map geplaatst.', 0);
        } else {
            msg('Fout', 'Er is iets misgegaan tijdens het uploaden van het bestand.', 0);
            PrintErrors();
        }
    }
} else {
    ?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
  <input type="hidden" name="submit_form" value="true">
  <input type="file" name="source_file">
  <input type="submit" value="Plaats!">
</form>
    <?
}
?>


Wat zijn de voordelen (ik vindt het veiliger) en wat zijn de nadelen aan het gebruik maken van de FTP functies?

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

777 is dom. Maak gewoon de webserver eigenaar van die map en pas 750 toe. Sim-pel. Het toepassen van FTP brengt als het goed is hetzelfde probleem (alleen moet dan de FTPD eigenaar zijn van de map; en niet de httpd)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

ik heb zelf eigenlijk weinig tot geen verstand er van. dus heb eigenlijk meer een paar vragen...

Hoezo zou dit veiliger zijn?

Wat is er op tegen om gewoon CHMOD te gebruiken?
het is een stuk eenvoudiger dan deze hele functie (niet dat ik zelf ooit zo'n functie zou kunnen maken) :?

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Acties:
  • 0 Henk 'm!

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 05-10-2024
Spider.007 schreef op 05 september 2003 @ 09:59:
777 is dom. Maak gewoon de webserver eigenaar van die map en pas 750 toe. Sim-pel. Het toepassen van FTP brengt als het goed is hetzelfde probleem (alleen moet dan de FTPD eigenaar zijn van de map; en niet de httpd)
Wat nou als je geen rechten hebt om een CHOWN uit te voeren?

Trouwens, wat ik doe als ik wel rechten heb om een chown uit te voeren is dit:
chown ftpuser:apache_groep map
chmod 775 map
Dan kan de ftp user ook nog bij de map en wijzigingen aanbrengen...

Hee, ik zit net te denken... als je de webserver een 7 recht geeft (rwx) dan kun je vanuit een andere website op de zelfde server ook wijzegingen maken in deze map. Met bijvoorbeel fopen("/home/sites/www.anderdomein.nl/map/bestandje_van_een_ander.txt", 'w+'). Of niet?
PsychoBoy schreef op 05 september 2003 @ 10:02:
ik heb zelf eigenlijk weinig tot geen verstand er van. dus heb eigenlijk meer een paar vragen...

Hoezo zou dit veiliger zijn?

Wat is er op tegen om gewoon CHMOD te gebruiken?
het is een stuk eenvoudiger dan deze hele functie (niet dat ik zelf ooit zo'n functie zou kunnen maken) :?
Wanneer je met je eigen FTP account een map CHMOD 777'nt dan kunnen alle andere gebruikers op die server doen en laten wat ze willen in die map.

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Slagroom schreef op 05 September 2003 @ 10:36:
Hee, ik zit net te denken... als je de webserver een 7 recht geeft (rwx) dan kun je vanuit een andere website op de zelfde server ook wijzegingen maken in deze map. Met bijvoorbeel fopen("/home/sites/www.anderdomein.nl/map/bestandje_van_een_ander.txt", 'w+'). Of niet?
Tenzij de hoster open_basedir aan heeft staan voor PHP en voor elke user de basedir op zijn eigen directory gezet heeft. Maar zelfs als dat niet zo is, kan safe_mode aanstaan.

Je kan ook nog exec("cat /etc/passwd"); uitvoeren, tenzij execute uitstaat.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Slagroom schreef op 05 September 2003 @ 10:36:
[...]
Wat nou als je geen rechten hebt om een CHOWN uit te voeren?
FTP voorziet hierin: SITE CHMOD 647 index.htm :)

edit:
chmod != chown |:(

[ Voor 7% gewijzigd door Spider.007 op 05-09-2003 12:07 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 05-10-2024
Spider.007 schreef op 05 September 2003 @ 11:56:
[...]


FTP voorziet hierin: SITE CHMOD 647 index.htm :)

edit:
chmod != chown |:(
Dat is lekker veilig! 8)7 Nu heb je nog eigenlijk het zelfde als CHMOD 777... iedereen heeft lees en schrijf rechten...
Gerco schreef op 05 September 2003 @ 11:13:
[...]


Tenzij de hoster open_basedir aan heeft staan voor PHP en voor elke user de basedir op zijn eigen directory gezet heeft. Maar zelfs als dat niet zo is, kan safe_mode aanstaan.

Je kan ook nog exec("cat /etc/passwd"); uitvoeren, tenzij execute uitstaat.
Daar heb je gelijk in.

Maar, al met al lijkt het mij veiliger om het toch via FTP te doen, niet? Dan hoef je gewoon niets te chmodden...

[ Voor 4% gewijzigd door Slagroom op 05-09-2003 12:50 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Slagroom schreef op 05 September 2003 @ 12:50:
[...]

Dat is lekker veilig! 8)7 Nu heb je nog eigenlijk het zelfde als CHMOD 777... iedereen heeft lees en schrijf rechten...
Het was maar een voorbeeld ;) Ik heb er niet op gelet welke rechten er werden toegekend aangezien ik de exacte syntax van een website heb gekopieerd. :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1