Protezioni script da infiltrazioni Hacker
FOPEN
Ciao a tutti...
io ho iniziato a studiare php da poco leggendo alcune guide
per aprire scrivere e chiudere i files
Codice:
<?
$messaggio=$_POST['messaggio'];
?>
<?
$var=fopen("nome_file.txt","a+");
fwrite($var, "$messaggio");
fclose($var);
?>
Penso non ci sia bisogno di postare anche la pagina .html di invio
come faccio a proteggere questo semplice script?
grazie
ok un attimo perchè ho tutto nella pen drive
.....
_____________
Funzione ISSET
Codice:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name : <input name="username" type="text"><br>
Password : <input name="password" type="password"><br>
<input name="send" type="submit" value="Send!">
</form>
<?php
//The form above use $_SERVER['PHP_SELF'] as the action value. It is not required for the form to perform correctly but it's considered good programming practice to use it.
//Below is the PHP code used to access form values :
if(isset($_POST['send'])){
echo "Accessing username using POST : " . $_POST['username'] . "<br>";
echo "Accessing username using REQUEST : " . $_REQUEST['username'] . "<br>";
$password = $_POST['password'];
echo "Password is $password";
}
?>
dunque questo + un semplice form (mese di agosto) avevo iniziato a studiare la funzione isset
collegata al pulsate di questo form per evitare righe vuote o messaggi di errore in un login.
Adesso ho tutto in locale non so se funziona.
__________________________________
funzione CASE (questo mi serviva per eseguire diverse funzioni)
in base a quello che scrive l'utente nella casella di input)
Codice:
<?php
$task = $_POST['task'];
$textbox = $_POST['textbox'];
switch( $task ) {
case 'continue':
doContinue($textbox);
break;
case 'process':
doProcess($textbox);
break;
case 'cancel':
doCancel();
break;
default:
doForm();
}
function doForm() {
?>
<form method="post" action="">
<INPUT type="text" name="textbox" size="20"><BR>
<input type="submit" name="task" value="continue">
</form>
<?php
}
function doProcess($textbox) {
echo "<BR>You typed <b>$textbox</b> in the textbox; press continue too continue or cancel too reset\n";
?>
<FORM method="post" action="">
<input type="submit" name="task" value="continue">
<input type="submit" name="task" value="cancel">
</form>
<?php
}
function doContinue($textbox) {
echo "<BR>You typed <b>$textbox</b>\n";
}
function doCancel() {
echo "CANCEL";
}
?>
_________________________________________
FORM AUTENTICAZIONI tutto in php
un semplice form tutto in php sempre con la funzione isset (che mi piace molto eh eh)
Codice:
<form action='<? echo $PHP_SELF; ?>'>
Nome utente: <input name='Nome' value=''>
Password: <input type='Password' name='Password' value=''>
<input type='submit' name='OK' value=' OK '>
<?
if (isset($OK) && ($Password == 'segret99')) echo "$Nome è autenticato";
if (isset($OK) && ($Password != 'segret99')) echo "$Nome NON è autenticato";
?>
</form>
___________________________________________
INVIARE UNA FOTO IN UNA CARTELLA SUL WEB
lo script era in due pagine... l'ho modificato mettendo ho messo tutto in uno
Codice:
TUTTO IN UNA PAGINA PHP
<?php
if(!empty($_POST)){
$percorso = "./image/";
if (is_uploaded_file($_FILES['image']['tmp_name'])) {
if (move_uploaded_file($_FILES['image']['tmp_name'], $percorso.$_FILES['image']['name'])) {
} else {
echo "si è verificato un errore durante l'upload: ".$_FILES["image"]["error"];
}
}
echo "<img src='$percorso".$_FILES['image']['name']."' />";
}else {
form_file();
}
function form_file(){
echo <<<HT
<form action="form-image.php" method="POST" enctype="multipart/form-data">
<!-- Campo file di nome "image" -->
<input name="image" type="file" size="40" />
<br /><br />
<!-- Pulsante -->
<input name="upload" type="submit" value="Carica immagine" />
</form>
HT;
}
?>
Ps naturalmente questi script non so se funzionano sono tutto in locale
nel mio forum nella sezione PHP là funzionano sicuro.
Naturalmente gli esempi non ci sono più. Tutto cancellato.
Per il momento mi fermo qui poi stasera in caso ne inserisco altri.
ciao e grazie a tutti
Ho creato una nuova cartella "php protetti"
in questa cartella metterò i vostri script
cosi sto più tranquillo
Citazione:
Lo script pericoloso è l'ultimo: permette ad un malintenzionato di creare un qualsiasi file nel server, anche un file PHP. Poiché viene anche reso noto l'intero URL, il malintenzionato può richiamare il suo script PHP ed eseguirlo per fare ciò che preferisce.
Per rimediare, devi proibire le estensioni pericolose (.php).
@karl94: per esempio il seguente script non specifica il tipo di file da inviare e quindi si può mandare anche un file php
Citazione:
<input name="image" type="file" size="40" />
--------------------------------------------
Citazione:
P.S.: Scusa, forse sono io che sbaglio, ma a cosa ti serve il primo codice, da quello che vedo, se non sbaglio, stampa solo la password che hai inserito nel modulo.
@sevenjeak: è lo script originale trovato nel web serviva per imparare
la funzione isset. Le pagine php sono eseguibili all'avvio per evitare messaggi di errore o righe vuote.
L'echo viene sostituito con header(...indirizzo area protetta...)
mi sono segnato il link.
PS: d'ora in poi userò questo nuovo script in caso devo inviare
foto nella cartella.
@seven: ti ho mandato un mp.
poi continuo con altri script
TEXTAREA INVIO - TEXTAREA RICEVE
Codice:
Form d'invio
tabellaarea-php_new.php
<div align=center>
<form action="textarea-php_new_elabora.php" method="POST">
Titolo: <input size=85 type="text" name="titolo"><br>
<textarea name='messaggio' cols='70' rows='15'> </textarea><br>
<input type="submit" value="invia"> <input type="reset" value="cancella">
</form>
Pagina php che elabora + reindirizzamento alla pagina ricevente
textarea-php_new_elabora.php
tra 5 secondi reindirizzamento alla pagina ricevente... <br><font color=blue>tabellaarea-php_new.php </font>
<? header('refresh: 5; url=tabellaarea-php_new.php'); ?>
<?
$_POST['titolo'];
$_POST['messaggio'];
?>
<?
$var=fopen("deposito-textarea_new.php","a+");
fwrite($var, "<font color=blue>titolo=$titolo </font><br>messaggio=$messaggio <br>
---------------------------------- <br> <?
header('refresh: 5; url=tabellaarea-php_new.php'); ?>");
fclose($var);
?>
Pagina ricevente su tabella che si ridimensiona
tabellaarea-php_new.php
<div align=center>
<?
$titolo=$_POST['titolo'];
$messaggio=$_POST['messaggio'];
?>
<font color=red SIZE=6>LA LEZIONE DEL GIORNO</FONT><br>
.<br>
<table border=5 width=500 heigh=200>
<tr><td valign=top> <? include("deposito-textarea_new.php"); ?> </td></tr>
</table>
oppure include dentro la textarea
<textarea name="riceve" rows=20 cols=40 value="<? include('deposito-textarea_new.php'); ?>"> </textarea>
tabellaarea-php_new.php ----> textarea-php_new_elabora.php ----> deposito-textarea_new.php
Adesso devo aprire una nuova sezione sul mio forum
"PHP protetti (con la foto di un lucchetto)" quindi
gli script che considerati sicuri li andrò pubblicando.