upload no .php subor

Programovacie jazyky, rady, poradňa...
Lukas1169
Medium Star
Medium Star
Príspevky: 347
Registrovaný: 15 nov 2008, 15:20

upload no .php subor

Príspevok od používateľa Lukas1169 »

cafte chalani mam upload

Kód: Vybrať všetko

 <?php
 if (isset($_POST["odoslany"])) {
 if (is_uploaded_file($_FILES["subor"]["tmp_name"])) {
 $name = $_FILES["subor"]["name"];
 $copy = move_uploaded_file($_FILES["subor"]["tmp_name"], "uploads/$_POST[cmd]/$name");
 if ($copy) {
 echo "<p>Súbor bol <b>úspesne</b> nahratý.</p>";
 echo "<p><strong>Názov:</strong> $name</p>";
 echo "<p><strong>Ulozený do zlosky:</strong> $_POST[cmd]</p>";
 } else {
 echo "Súbor <b>$name</b> nebol nahratý na server.";
 }
 }
 }
 ?>
ako mam spravit aby nemohli uploadovat .php subory thx
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Príspevok od používateľa Nadeo »

Ale spamovat na pokeci aby ti tam ludia uploadovali obrazky mozes? Uz uz som ti tam isiel nahrat nejaky pozdrav...
K veci : Na nete je miliarda upload scriptov, staci si trocha pogooglit.
Lukas1169
Medium Star
Medium Star
Príspevky: 347
Registrovaný: 15 nov 2008, 15:20

Príspevok od používateľa Lukas1169 »

xD uz si isiel vydel som no :) si isiel tam drbnut urcite subor a ktomu php kod na otvorenie a v subore je vir ze lamka:)
take ze antivir neznas?
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Príspevok od používateľa Nadeo »

Ja niesom zly... len nejaky pozdrav nech si to opravis a nech nespamujes na pokeci :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

riadok

Kód: Vybrať všetko

$copy = move_uploaded_file($_FILES["subor"]["tmp_name"], "uploads/$_POST[cmd]/$name");
zmeň na

Kód: Vybrať všetko

if(strrchr($name, '.') != ".php") $copy = move_uploaded_file($_FILES["subor"]["tmp_name"], "uploads/$_POST[cmd]/$name"); else $copy = false;
ale nemysli si že teraz je to už bezpečné :)
Lukas1169
Medium Star
Medium Star
Príspevky: 347
Registrovaný: 15 nov 2008, 15:20

Príspevok od používateľa Lukas1169 »

thx audiotrack ale ja som kkt. ked uz neda sa to tak nech to uploaduje le jpg,png? to by bolo lepsie thx
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

snáď som nespravil preklep

Kód: Vybrať všetko

<?php
  $dovolene = array(".jpg",".png",".gif");
 if (isset($_POST["odoslany"])) {
 if (is_uploaded_file($_FILES["subor"]["tmp_name"])) {
 $name = $_FILES["subor"]["name"];
 if(in_array(strrchr($name, '.'),$dovolene)){
 $copy = move_uploaded_file($_FILES["subor"]["tmp_name"], "uploads/$_POST[cmd]/$name");
 } else $copy = false;
 if ($copy) {
 echo "<p>Súbor bol <b>úspesne</b> nahratý.</p>";
 echo "<p><strong>Názov:</strong> $name</p>";
 echo "<p><strong>Ulozený do zlosky:</strong> $_POST[cmd]</p>";
 } else {
 echo "Súbor <b>$name</b> nebol nahratý na server.";
 }
 }
 }
 ?>

Lukas1169
Medium Star
Medium Star
Príspevky: 347
Registrovaný: 15 nov 2008, 15:20

Príspevok od používateľa Lukas1169 »

okey thx ide to dufajme ze nijak inak sa tam nemoze ten subor dostat:)
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Príspevok od používateľa Mmartin »

pokial nepoolis upload z 3tieho serveru, tak nie
lebo aj ja ti mozem upnut subor .jpg a bude to php kod co ti da malware do pc ;)
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: upload no .php subor

Príspevok od používateľa eror »

a keď mám takýto upload?

Kód: Vybrať všetko

function UploadFiles($path)
	{
		$returnage = "";

		if($_SERVER['REQUEST_METHOD'] == 'POST')
		{
			if (isset($_FILES['file']) == false OR $_FILES['file']['error'] == UPLOAD_ERR_NO_FILE)
			{
				MiscCore::ErrorFunc('No files');
			}

			if ($_FILES['file']['error'] != UPLOAD_ERR_OK || !FileManagerCore::CheckExtBlackList($_FILES['file']['name']))
			{
				$_SESSION['file_error'] = true;
				MiscCore::ErrorFunc('There has been an error with the upload. This might be caused by the file being too big for example.', true);
			}
                        
			$newfile = $path.'/'.$_FILES['file']['name'];
			move_uploaded_file($_FILES['file']['tmp_name'], $newfile);

			MiscCore::SuccessFunc('You have successfully uploaded your file. <br />Click <a href="?mode=files&dir='.$_GET['redir'].'">here</a> to go back.<br />');
		}
		else
		{
			$returnage .= '<form action="" method="POST" enctype="multipart/form-data">';
			$returnage .= '<input type="file" name="file" size="30">';
			$returnage .= '<input type="submit" class="button" value="Nahrat" />';
			$returnage .= '</form>';
			return $returnage;
		}
	}
ako mám spraviť nech sa može len súbor .txt, .php uploadnut?

//autoeditácia príspevku (24 Jan 2010, 11:13)
eror napísal:a keď mám takýto upload?

Kód: Vybrať všetko

function UploadFiles($path)
	{
		$returnage = "";

		if($_SERVER['REQUEST_METHOD'] == 'POST')
		{
			if (isset($_FILES['file']) == false OR $_FILES['file']['error'] == UPLOAD_ERR_NO_FILE)
			{
				MiscCore::ErrorFunc('No files');
			}

			if ($_FILES['file']['error'] != UPLOAD_ERR_OK || !FileManagerCore::CheckExtBlackList($_FILES['file']['name']))
			{
				$_SESSION['file_error'] = true;
				MiscCore::ErrorFunc('There has been an error with the upload. This might be caused by the file being too big for example.', true);
			}
                        
			$newfile = $path.'/'.$_FILES['file']['name'];
			move_uploaded_file($_FILES['file']['tmp_name'], $newfile);

			MiscCore::SuccessFunc('You have successfully uploaded your file. <br />Click <a href="?mode=files&dir='.$_GET['redir'].'">here</a> to go back.<br />');
		}
		else
		{
			$returnage .= '<form action="" method="POST" enctype="multipart/form-data">';
			$returnage .= '<input type="file" name="file" size="30">';
			$returnage .= '<input type="submit" class="button" value="Nahrat" />';
			$returnage .= '</form>';
			return $returnage;
		}
	}
ako mám spraviť nech sa može len súbor .txt, .php uploadnut?
no co poradi niekdo?
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: upload no .php subor

Príspevok od používateľa Mmartin »

Rok stara tema >_>
Ale k veci
zistuj filetype a proovnavaj

ak ti to pride zlotzite, je aj komplikovanejsi ale lamacky a neefektivny sposob, a to:

Kód: Vybrať všetko

$filename = "subor.php"; //namiesto subor.php si daj premennu kam ukladas filename po uploade
if($filename[strlen(filename)-1]=="t" && $filename[strlen(filename)-2]=="x" && $filename[strlen(filename)-3]=="t"){ //haha, to som este neskusal, ale vyzera to zaujimavo, ma to prave napadlo :)
//tunak si daj kod co ma byt, ked je to txt (true)
}else{
//tunak ked neni txt (false)
}
je to smiesne, ale ist by to malo. Ale ked chces mat prehlad, pojde to aj cez funkcie a prehladnejsie, resp, spravil som ti funkciu, ktora ti zisti ci $param sa konci na $end (napriklad, ci sa file.php konci na .php

Kód: Vybrať všetko

function koncovka($param,$end)
{
 if(ereg('.'.$end.'$',$param){
  return true;
 }else{
  return false;
}
}
teraz uz len zavolas, asi takto:

Kód: Vybrať všetko

if(koncovka($filename,"php")){
//vykona ak je koncovka .php
}else{
//vykona ak koncovka nie je .php
}
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: upload no .php subor

Príspevok od používateľa eror »

a povieš mi ako mam henten tvoj kód dať do tohto!?

Kód: Vybrať všetko

function UploadFiles($path)
   {
      $returnage = "";

      if($_SERVER['REQUEST_METHOD'] == 'POST')
      {
         if (isset($_FILES['file']) == false OR $_FILES['file']['error'] == UPLOAD_ERR_NO_FILE)
         {
            MiscCore::ErrorFunc('No files');
         }

         if ($_FILES['file']['error'] != UPLOAD_ERR_OK || !FileManagerCore::CheckExtBlackList($_FILES['file']['name']))
         {
            $_SESSION['file_error'] = true;
            MiscCore::ErrorFunc('There has been an error with the upload. This might be caused by the file being too big for example.', true);
         }
                       
         $newfile = $path.'/'.$_FILES['file']['name'];
         move_uploaded_file($_FILES['file']['tmp_name'], $newfile);

         MiscCore::SuccessFunc('You have successfully uploaded your file. <br />Click <a href="?mode=files&dir='.$_GET['redir'].'">here</a> to go back.<br />');
      }
      else
      {
         $returnage .= '<form action="" method="POST" enctype="multipart/form-data">';
         $returnage .= '<input type="file" name="file" size="30">';
         $returnage .= '<input type="submit" class="button" value="Nahrat" />';
         $returnage .= '</form>';
         return $returnage;
      }
   }
ĎAKUJEM!!??

//autoeditácia príspevku (16 Feb 2010, 19:59)
prosím pomoze mi niekdo?

//autoeditácia príspevku (18 Feb 2010, 21:14)
pomoze mi uz niekdo alebo ste drbnuty?
Lukas1169
Medium Star
Medium Star
Príspevky: 347
Registrovaný: 15 nov 2008, 15:20

Re: upload no .php subor

Príspevok od používateľa Lukas1169 »

kebyze viem tak ti pomozem :)
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: upload no .php subor

Príspevok od používateľa eror »

diki aspoň ty si mi povedal Že to nevieš cenim si to
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: upload no .php subor

Príspevok od používateľa audiotrack »

eror napísal:...

//autoeditácia príspevku (18 Feb 2010, 21:14)
pomoze mi uz niekdo alebo ste drbnuty?
možno by si si mal pozreť základy php a nesnažiť sa zliepať kod z rôznych veci čo nájdeš na internete. Ťažko ti bude niekto hovoriť ako to napasovať do tvojho kodu, keď tam používaš dve triedy ktoré nikto nevidí (a možno teda niektorá z nich obsahuje metodu na presne to, čo požaduješ). Ak aj nie, dostal si presne podmienku ako si to ošetriť, tak namiesto urážania nás drbnutých by si mohol:
a) pohľadať niečo iné, čomu aj aspoň trochu rozumieš
b) spýtať sa slušne, hneď by bola väčšia ochota poradiť
c) pozreť si aspoň základy php aby si bol schopný dva kúsky kodu spojiť do jedného aj sám
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: upload no .php subor

Príspevok od používateľa eror »

hej ja som tu aj pekne napisal ze kdo mi pomoze a napisal len lukas... sry no za vsetko ale ja proste potrebujem tento kod takze kdo by mi vedel poradit?

//autoeditácia príspevku (19 Feb 2010, 16:58)
vydis pekne som poprosil a nikdo nepomohol
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: upload no .php subor

Príspevok od používateľa chrono »

Okrem iných vecí tam máš aj funkciu CheckExtBlackList. Urob podobnú, ktorá ale bude zisťovať, či je koncovka povolená a použi tam tú (alebo urob univerzálnu a pridaj tam parameter, aby sa v nej vedelo, či sa má použiť white alebo black list).
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: upload no .php subor

Príspevok od používateľa eror »

ani hov** neviem čo si stohto povedal...

//autoeditácia príspevku (23 Feb 2010, 12:14)
a zas mi nikdo nepomohol please help you :cry:

//autoeditácia príspevku (24 Feb 2010, 21:53)

Kód: Vybrať všetko

function UploadFiles($path)
   {
      $returnage = "";

      if($_SERVER['REQUEST_METHOD'] == 'POST')
      {
         if (isset($_FILES['file']) == false OR $_FILES['file']['error'] == UPLOAD_ERR_NO_FILE)
         {
            MiscCore::ErrorFunc('No files');
         }

         if ($_FILES['file']['error'] != UPLOAD_ERR_OK || !FileManagerCore::CheckExtBlackList($_FILES['file']['name']))
         {
            $_SESSION['file_error'] = true;
            MiscCore::ErrorFunc('There has been an error with the upload. This might be caused by the file being too big for example.', true);
         }
                       
         $newfile = $path.'/'.$_FILES['file']['name'];
         move_uploaded_file($_FILES['file']['tmp_name'], $newfile);

         MiscCore::SuccessFunc('You have successfully uploaded your file. <br />Click <a href="?mode=files&dir='.$_GET['redir'].'">here</a> to go back.<br />');
      }
      else
      {
         $returnage .= '<form action="" method="POST" enctype="multipart/form-data">';
         $returnage .= '<input type="file" name="file" size="30">';
         $returnage .= '<input type="submit" class="button" value="Nahrat" />';
         $returnage .= '</form>';
         return $returnage;
      }
   }
bože pomožete mi už prosím 1. a posledná pomoc čo chcem od vás aby som mohol nahrávať súbory len .txt, .jpg prosím vás
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Re: upload no .php subor

Príspevok od používateľa Gepid »

eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: upload no .php subor

Príspevok od používateľa eror »

mám to takto a vkuse mi to ukáže že mozem uploadnut len .txt subory aj ked zadam txt subor

Kód: Vybrať všetko

function UploadFiles($path)
	{
		$returnage = "";

		if($_SERVER['REQUEST_METHOD'] == 'POST')
		{
			if (isset($_FILES['file']) == false OR $_FILES['file']['error'] == UPLOAD_ERR_NO_FILE)
			{
				MiscCore::ErrorFunc('No files');
			}

			if ($_FILES['file']['error'] != UPLOAD_ERR_OK || !FileManagerCore::CheckExtBlackList($_FILES['file']['name']))
			{
				$_SESSION['file_error'] = true;
				MiscCore::ErrorFunc('There has been an error with the upload. This might be caused by the file being too big for example.', true);
			}

                        if($_FILES['userfile']['type'] != ".txt") {
                                echo "Sorry uploadnúť možeš len .txt súborY!";
                                exit;
                        }
                        
			$newfile = $path.'/'.$_FILES['file']['name'];
			move_uploaded_file($_FILES['file']['tmp_name'], $newfile);

			MiscCore::SuccessFunc('You have successfully uploaded your file. <br />Click <a href="?mode=files&dir='.$_GET['redir'].'">here</a> to go back.<br />');
		}
		else
		{
			$returnage .= '<form action="" method="POST" enctype="multipart/form-data">';
			$returnage .= '<input type="file" name="file" size="30">';
			$returnage .= '<input type="submit" class="button" value="Nahrat" />';
			$returnage .= '</form>';
			return $returnage;
		}
	}
Napísať odpoveď