Búa til upload server
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Búa til upload server
Ég er með tilbúinn server með smf, php, mysql, apache2 og keyrir á ubuntu server 12.04 og mig langar að búa til service fyrir notendur mína (bara með php eða html) þar sem þeir geta uploadað skrám eins og bara avatars, mp3 skrár eða bara eitthvað þannig með max size 25 MB per skrá. Ég er kominn með auðkenningar síðu sem notar MySql database fyrir accounta og ég skrái þá bara nafn og password og notandinn getur loggað sig inn.
Var búinn að prufa þetta en það virkaði ekki eins og ég vildi hafa það
Öll hjálp vel þegin
Var búinn að prufa þetta en það virkaði ekki eins og ég vildi hafa það
Öll hjálp vel þegin
Bananas
-
- Of mikill frítími
- Póstar: 1701
- Skráði sig: Þri 27. Apr 2004 14:03
- Reputation: 37
- Staða: Ótengdur
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
Það eru ekki allir sem kunna að nota ftp (því miður)
og ég var búinn að reyna að nota FTP, en það einfaldlega gekk ekki
og ég var búinn að reyna að nota FTP, en það einfaldlega gekk ekki
Bananas
-
- FanBoy
- Póstar: 785
- Skráði sig: Lau 14. Júl 2012 22:36
- Reputation: 3
- Staðsetning: 404 - Location Not found.
- Staða: Ótengdur
Re: Búa til upload server
Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.
Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.
Saltaðu svo lykilorðin og þá getum við talað.
Nr. 1 2 og 3, Hashaðu lykilorðin.
Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.
Kóði: Velja allt
hash('sha512', $pass);
Saltaðu svo lykilorðin og þá getum við talað.
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
rango skrifaði:Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.
Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.Kóði: Velja allt
hash('sha512', $pass);
Saltaðu svo lykilorðin og þá getum við talað.
Þetta er allt encryptað í drasl, skil ekki alveg sjálfur hvernig, en mér sýnist það vera annaðhvort SHA1 eða 2
Það er ekki auðkenningin sem ég hef áhyggjur af (atm), heldur hvernig notendurnir geta uploadað skránum þeirra
Bananas
Re: Búa til upload server
rango skrifaði:Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.
Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.Kóði: Velja allt
hash('sha512', $pass);
Saltaðu svo lykilorðin og þá getum við talað.
Stráksi... Hérna notum við bcrypt eða pbkdf2. SHA er crypto hash (hannað til að vera hraðvirkt) en bcrypt og pbkdf2 eru password hash (hönnuð til að taka tíma). Samt hárrétt að salt+hash er nauðsynlegt.
@OP: hvað er það sem virkaði ekki eins og þú vildir hafa það við þetta w3schools dót?
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
Það einfaldlega vildi ekki leyfa mér að uploada skrám...
Ef þú vilt prufa sjálfur http://codw.co.vu/MINE/test
Ég bjó til temporary user: vaktin og pass: vaktin123
Ef þú vilt prufa sjálfur http://codw.co.vu/MINE/test
Ég bjó til temporary user: vaktin og pass: vaktin123
Bananas
-
- FanBoy
- Póstar: 785
- Skráði sig: Lau 14. Júl 2012 22:36
- Reputation: 3
- Staðsetning: 404 - Location Not found.
- Staða: Ótengdur
Re: Búa til upload server
dori skrifaði:rango skrifaði:Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.
Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.Kóði: Velja allt
hash('sha512', $pass);
Saltaðu svo lykilorðin og þá getum við talað.
Stráksi... Hérna notum við bcrypt eða pbkdf2. SHA er crypto hash (hannað til að vera hraðvirkt) en bcrypt og pbkdf2 eru password hash (hönnuð til að taka tíma). Samt hárrétt að salt+hash er nauðsynlegt.
Veit vel hvað SHA er og í hvað það var hannað, Enn við getum verið sammála um að SHA2 sé öruggara enn SHA1?
Þetta er alveg hárrétt hjá þér með blowfish, Markmiðið með SHA er ekki strong öryggi, Ég nota bcrypt hjá mér.
Ef einhver vill brjóta SHA eða MD5 er þá er það hægt, Enn þarna ertu bara búinn að reisa rafmagnsgirðingu.
Ég var líka að taka tillit til hans mikka, Algjör óþarfi að segja honum að ekkert nema það besta dugi. Eða mér finst það þó svo að það eigi við í öryggi.
Þegar ég byrjaði að læra þetta þá varð ósaltað MD5 fyrir valinu, Shit happens
Edit, Pastebin af upload_file.php takk.
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
Pastebin? o.O
Kóði: Velja allt
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png", "mp3");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "audio/mp3"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Bananas
-
- Of mikill frítími
- Póstar: 1701
- Skráði sig: Þri 27. Apr 2004 14:03
- Reputation: 37
- Staða: Ótengdur
Re: Búa til upload server
Kóði: Velja allt
Upload: 28a8ab85ff6a1436d03e9d198c6f202923f1b674_full.jpg
Type: image/jpeg
Size: 3.734375 kB
Temp file: /tmp/phpxtyGlI
Stored in: upload/28a8ab85ff6a1436d03e9d198c6f202923f1b674_full.jpg
Kom engin villa?
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
-
- FanBoy
- Póstar: 785
- Skráði sig: Lau 14. Júl 2012 22:36
- Reputation: 3
- Staðsetning: 404 - Location Not found.
- Staða: Ótengdur
Re: Búa til upload server
mikkidan97 skrifaði:Pastebin? o.OKóði: Velja allt
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png", "mp3");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "audio/mp3"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Ja eða þú veist orðatiltak, Getur allt eins renamað í .php.txt
villtu setja fyrir mig
Kóði: Velja allt
var_dump($_FILES["file"]);
rétt fyrir ofan
Kóði: Velja allt
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "audio/mp3"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
ég fæ
Kóði: Velja allt
array(1) { ["file"]=> array(5) { ["name"]=> string(10) "Status.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(24) "G:\xampp\tmp\php7BC1.tmp" ["error"]=> int(0) ["size"]=> int(251893) } } Upload: Status.png
Þessi if function er að feila og því kemur Invalid file.
Re: Búa til upload server
Má ég giska á permission villur?
Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).
Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
dori skrifaði:Má ég giska á permission villur?
Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).
Á íslensku takk
Bananas
Re: Búa til upload server
Eitthvað svona (ef þú ert á linux vél)
cd /www/mikkidan/MINE
chown www-data:www-data uploads
chmod 755 uploads
Augljóslega aðlaga slóð/username/groupname að því sem þú hefur á þínu kerfi.
cd /www/mikkidan/MINE
chown www-data:www-data uploads
chmod 755 uploads
Augljóslega aðlaga slóð/username/groupname að því sem þú hefur á þínu kerfi.
-
- FanBoy
- Póstar: 785
- Skráði sig: Lau 14. Júl 2012 22:36
- Reputation: 3
- Staðsetning: 404 - Location Not found.
- Staða: Ótengdur
Re: Búa til upload server
dori skrifaði:Má ég giska á permission villur?
Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).
Ef þetta væri permission villi væri það þá ekki einhvað tengt move_uploaded_file()?
Kóði: Velja allt
Superlongif(){
Moves and shit
}
else
{
echo "Invalid file";
}
Mig grunar $extension ef að $_FILES er ekki empty.
Og ég er 100% sammála þér með Md5, Og t.d. hafa upload í './'
meðan htdocs er í './htdocs/'
mikkidan97 skrifaði:Á íslensku takk
Keyrðu það sem ég sagði þér að keyra takk, Þetta er annars íslenska.
Google translate sannar munin
May I guess Permission errors?
Also, it is good practice to store documents that are not submitted to the side of scipts (you do not want to allow someone to upload skrá.php, run, and manage to take over your server). It's also a good idea to create a new name for the documents that are filed (md5 sum of the file +. Ext works pretty well in it) and have a function that creates a path to the file and set the variable (eg get_filename ("some-image . jpg ") ->" / afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg ") and use that variable everywhere instead of being a" upload / ". $ name in many places (creates a risk of errors).
-
- Of mikill frítími
- Póstar: 1701
- Skráði sig: Þri 27. Apr 2004 14:03
- Reputation: 37
- Staða: Ótengdur
Re: Búa til upload server
mikkidan97 skrifaði:Hvar ætti að koma villa?
Ef það tókst ekki að uploada skránni hefði maður búist við villu. Miðað við skilaboðin sem ég fékk og php skriptið þá tókst þetta fullkomnlega.
Re: Búa til upload server
Ég var að giska á að þetta væri tengt move_uploaded_file. Ég hef ekki hugmynd um hvernig sú aðgerð hegðar sér en ég man eftir skrýtnum og leiðinlegum vandamálum með PHP og upload og illa stillt permissions.
-
- Of mikill frítími
- Póstar: 1701
- Skráði sig: Þri 27. Apr 2004 14:03
- Reputation: 37
- Staða: Ótengdur
Re: Búa til upload server
move_uploaded_file() skilar bool en það er ekki notað í þessu php scripti til að athuga hvort sú aðgerð tókst yfir höfuð (http://php.net/manual/en/function.move-uploaded-file.php).
Myndi byrja á að setja eitthvað eins og:
Myndi byrja á að setja eitthvað eins og:
Kóði: Velja allt
if(move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"])) {
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
} else {
echo "access denied";
}
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
[/quote]rango skrifaði:
villtu setja fyrir migKóði: Velja allt
var_dump($_FILES["file"]);
rétt fyrir ofanKóði: Velja allt
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "audio/mp3"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
Gerði það og fékk:
Kóði: Velja allt
array(5) { ["name"]=> string(12) "Capture1.PNG" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(14) "/tmp/phpPChAoF" ["error"]=> int(0) ["size"]=> int(909) } Invalid file
Hvernig er hægt að fixa þetta?
Bananas
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
Er ekki hægt bara að búa til scriptu sem leyfir alla extensiona en blockar þá sem ég segi henni að blocka (php, html, etc..)?
Bananas
Re: Búa til upload server
Það er hægt en ætti að vera augljóst að þú vilt ekki gera slíkt. Leyfðu bara takmarkað set og settu logg færslu ef þú bannar eitthvað. Þannig geturðu fylgst með loggunum og séð hvort það sé eitthvað sem þú ættir að leyfa.
-
Höfundur - spjallið.is
- Póstar: 406
- Skráði sig: Mið 29. Feb 2012 15:48
- Reputation: 7
- Staðsetning: Keflavík
- Hafðu samband:
- Staða: Ótengdur
Re: Búa til upload server
dori skrifaði:Það er hægt en ætti að vera augljóst að þú vilt ekki gera slíkt. Leyfðu bara takmarkað set og settu logg færslu ef þú bannar eitthvað. Þannig geturðu fylgst með loggunum og séð hvort það sé eitthvað sem þú ættir að leyfa.
Ég kann eiginlega ekkert á php scripting...
Er ekki hægt að fá einhvern til að skrifa svona fyrir sig frítt?
Bananas
Re: Búa til upload server
mikkidan97 skrifaði:dori skrifaði:Það er hægt en ætti að vera augljóst að þú vilt ekki gera slíkt. Leyfðu bara takmarkað set og settu logg færslu ef þú bannar eitthvað. Þannig geturðu fylgst með loggunum og séð hvort það sé eitthvað sem þú ættir að leyfa.
Ég kann eiginlega ekkert á php scripting...
Er ekki hægt að fá einhvern til að skrifa svona fyrir sig frítt?
Yfirleitt er ekki hægt að fá neinn til að gera neitt fyrir sig frítt. Værir þú til í að koma og mála húsið mitt frítt?
Prufaðu þetta annars. Ætti að vera meira verbose og láta þig vita hvað það er sem gerist ekki.
Kóði: Velja allt
<?php
const UPLOAD_PATH = "upload/";
$allowedExts = array("gif", "jpeg", "jpg", "png", "mp3");
$allowedMimes = array("image/gif", "image/jpeg", "image/jpg", "image/pjpeg", "image/x-png", "image/png", "audio/mp3");
$maxSize = 100000000;
function get_extension($filename)
{
return strtolower(end(explode(".", $filename)))
}
function get_file_path($file)
{
return UPLOAD_PATH . md5_file($file["tmp_name"]);
}
$extension = get_extension($_FILES["file"]["name"]);
$mime = $_FILES["file"]["type"];
$size = $_FILES["file"]["size"];
if (!in_array($mime, $allowedMimes))
{
echo "Restricted mime type: " . $mime;
}
elseif ($size > $maxSize)
{
echo "File too big (max size " . $maxSize . "): " . $size;
}
elseif (!in_array($extension, $allowedExts))
{
echo "Restricted extension: " . $extension;
}
else
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
$path = get_file_path($_FILES["file"]);
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
echo "Dest path: " . $path;
if (file_exists($path))
{
echo $path . " already exists. ";
}
else
{
if(move_uploaded_file($_FILES["file"]["tmp_name"], $path))
{
echo "Stored " . $_FILES["file"]["name"] . " in: " . $path;
}
else
{
echo "Couldn't upload " . $_FILES["file"]["name"];
}
}
}
}
else
{
echo "Invalid file";
}
?>
Btw. ég hef ekki keyrt þetta, kannski virkar þetta ekki einu sinni. Mörg ár síðan ég fiktaði eitthvað í php af viti.