[ qnyee @ 21.06.2005. 18:34 ] @
Moze neko da mi napise ili uputi kako da u php scriptu dam naredbu za skeniranje fajla koji se uploaduje na server.ako nema virusa fajl prolazi i smesta se na server,ako ne ispisuje se poruka i prekida upload. Ovo sve radim za diplomski na localu sa Apache-om i MySql-om
[ SmilieBG @ 21.06.2005. 19:23 ] @
jedino sto mi pada na pamet, jeste da fajl preuzmes na server, zatim da preko komande linije pozoves neki antivirus program u smislu:

exec('/anti/virus/program.exe -F /neki/tvoj/fajl.ovde');

zatim da hvatas sta AV kaze i da na osnovu toga ili brises ili ostavis fajl na serveru...

Poz,
Sale

[Ovu poruku je menjao boccio dana 22.06.2005. u 15:24 GMT+1]
[ qnyee @ 21.06.2005. 19:37 ] @
e to sa "hvatanjem",kako da resim,kako da naredim php-u da skonta da li je AV prijavio da li taj fajl sadryi virus ili ne.
Al ono sto bi najbolje bilo,da li postoji takav skript koji jos pre smestanja fajla na server, poyiva AV kroy koji prolazi fajl i pusta kopiranje na server ili ga ukida kompletno.
[ SmilieBG @ 21.06.2005. 20:05 ] @
http://nl2.php.net/function.exec

koliko sam ja razumeo, makar iz primera sa sajta:

<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo exec('whoami');
?>

output se ispisuje direktno na ekran. E, sada ako ti hoces prvo da proveris output, onda bi trebalo:

<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
exec('whoami',$output);

echo "ovo je output".$output[0];

?>

e, sada, posto ce ti exec() uvek vracati array sa jednom vrednosti, moras iz tog array da iscitas odgovor. Nisam puno radio sa array, pogledaj: http://nl2.php.net/array. Neka od tih funkcjia verovatno moze da procita odredjenu rec / deo recenice kojom ces definisati dal' ima ili nema virus...

dakle nesto u smislu (na tebi je da pronadjes odgovarajucu funkciju za array ili work-around):

exec('/anti/virus/program.exe -F /neki/tvoj/fajl.ovde', $output);
if(neka_array_search_funkcija("Virus not found", $output))
{
exec('cp /neki/fajl.ovde /neki/prebaci/tu/fajl.ovde');
echo "fajl je stavljen na server";
}
else
{
exec('rm -f /neki/fajl.ovde');
echo "pronadjen virus i fajl uklonjen";
exit;
}

Poz,
Sale

[Ovu poruku je menjao SmilieBG dana 21.06.2005. u 21:12 GMT+1]
[ qnyee @ 21.06.2005. 20:11 ] @
au.komplikovano. nasao samo ovako nesto,radi samo za Norton antivirus
http://www.planetsourcecode.co...asp?txtCodeId=834&lngWId=8
nadam se da pali
[ SmilieBG @ 21.06.2005. 20:14 ] @
kako bre komplikovano :(

sve jasno ko dan... :)

Poz,
Sale
[ Jbyn4e @ 22.06.2005. 14:02 ] @
Citat:
qnyee: e to sa "hvatanjem",kako da resim,kako da naredim php-u da skonta da li je AV prijavio da li taj fajl sadryi virus ili ne.
Al ono sto bi najbolje bilo,da li postoji takav skript koji jos pre smestanja fajla na server, poyiva AV kroy koji prolazi fajl i pusta kopiranje na server ili ga ukida kompletno.

Malo sam testirao, naravno da zavisi od antivirusa. Recimo da koristim CLAMav free antivirus:
Citat:

# php -q
<? exec ('clamscan --no-summary /root/clamav-install/clamav-0.85.1/README', $output); print_r ($output); ?>
Array
(
[0] => /root/clamav-install/clamav-0.85.1/README: OK
)

Obrati paznju na poslednjem, pise OK, dok kod test fajla za viruse:
Citat:

# php -q
<? exec ('clamscan --no-summary /root/clamav-install/clamav-0.85.1/test/clam.exe', $output); print_r ($output); ?>

Array
(
[0] => /root/clamav-install/clamav-0.85.1/test/clam.exe: ClamAV-Test-File FOUND
)

lepo pise FOUND.
Znaci, ako ti se u $output[0] sadrzi FOUND, zarazen je i onda ga obrises (ne izvrsis prebacivanje iz tmp foldera gde ga uploaduje).

Za ostalo se snadji sam, necu ti pisati ceo kod :)