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:
Wat zijn de voordelen (ik vindt het veiliger) en wat zijn de nadelen aan het gebruik maken van de FTP functies?
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?