Messenger HTML - PHP - Controllo script

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
pagina1

Codice:
<div align=center> 
<iframe name="ricezione2" src="deposito_messaggi.php" width=500 height=200></iframe>


<form  action="#" method="POST">
Nome: <input type="text" name="nome">
Messaggio: <input type="text" name="messaggio">
<input type="submit" value="invia messaggio">
</form>


<?
$nome=$_POST['nome'];
$messaggio=$_POST['messaggio'];

$nome = str_replace("<", "banana1", $nome);
$nome = str_replace(">", "banana2", $nome);
$messaggio = str_replace("<", "caffe1", $messaggio);
$messaggio = str_replace(">", "caffe2", $messaggio);

$var=fopen("deposito_messaggi.php","r");
$dim=filesize("deposito_messaggi.php");
$contenuto=fread($var,$dim);
 fclose($var);


$var=fopen("deposito_messaggi.php","w+");
 fwrite($var, "<font color=blue>$nome: </font>$messaggio <br /> $contenuto");
fclose($var);
?>


<a href="deposito_messaggi.php">vai alla pagina dei messaggi</a>
</div>

pagina 2 - "deposito_messaggi.php"

Codice:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control:  post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

Ciao ragazzi, è da molto che non mi occupo di php sto riprendendo adesso
ho la necessita di costruire una specie messenger per messaggi on-line

Volevo sapere se questo script è sicuro da infiltrazioni hacker
ho messo dei comandi per sostituire i simboli di < e >

str_replace

e poi se si può fare direttamente nel POST

Codice:
$nome=$_POST['nome'];
$messaggio=$_POST['messaggio'];

e qual è la sintassi corretta :book:

grazie.

au revoir
by max
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Ehm... perché invece di sostituire i caratteri con termini improbabili non applichi le funzioni htmlspecialchars e addslashes?
PHP:
$nome = isset($_POST['nome']) ? addslashes(htmlspecialchars($_POST['nome'])) : '';
$messaggio = isset($_POST['messaggio']) ? addslashes(htmlspecialchars($_POST['messaggio']) : '';
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
Grazie Gighen... grazie Signor Gattino,

lo script del gatto mi sembra più breve e più facile da ricordare
comunque me li segno tutti e due.

La parola Strip non vuol dire per caso spogliare o spogliarello dei tag
una volta avevo un gioco Strip e poker dove una ragazza si spogliava ogni volta che perdeva una mano... una partita...

anzi guardando bene dal traduttore togliere tags :book:

Grazie onorevoli...
ma in ogni caso.... quello che avevo scritto io è sicuro?

Codice:
$nome=$_POST['nome'];
$messaggio=$_POST['messaggio'];

$nome = str_replace("<", "banana1", $nome);
....
o è meglio modificare in

Codice:
$nome = isset($_POST['nome']) ? addslashes(htmlspecialchars($_POST['nome'])) : '';
$messaggio = isset($_POST['messaggio']) ? addslashes(htmlspecialchars($_POST['messaggio']) : '';

oppure
Codice:
$messaggio=strip_tags($_POST['messaggio'], '<br><b>');
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
ehm... dottor gighen c'è un errore...

... manca una parentesi rotonda nella seconda riga verso la fine

in ogni caso ho corretto ma i simboli
Codice:
< >
vengono copiati ugualmente...

________

Per quanto riguarda il gatto... lo script funziona correttamente
i simboli citati prima non vengono visualizzati ma il grassetto si

tutto ok... :book:
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
credo (ma di sicuro in questa vita c'è un'unica cosa sicura, e se arriva non t'importa più ne di php htm o altro)
comunque credo che il sistema di alex e quello del "gatto" si possano considerare equivalenti
tutto sta anche a cosa vuoi ritrovarti poi nel messaggio
es
stringa = <a href='.......' ....>pinco pallo
con alex ti ritrovi con
&gt;a href\'....\...&egt;pinco pallo
con il "gatto" dovresti trovare
pinco pallo
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
dottor gattino ma che cazzo scrivi?

non ci ho capito un ****.

Comunque il tuo script è ok ora vediamo di sistemare quello di gighen

un ultima cosa mi sono segnato i vostri script nel mio forum nella sezione PHP con lucchetto posso aggiungere i vostri nick?

poi esiste htmlentities del dottor sevenjeak che elimina tutti i tag html se non sbaglio
ho fatto una prova al volo e praticamente ricopia a pappagallo il tag del grassetto

in poche parole disattiva le funzioni dei tag ... giusto? :book:
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
l'esempio voleva dire che se una stringa è fatta in quella maniera con i due metodi ti ritrovi o il primo o il secondo.
comunque da esempio di php-manual per strip_tags
PHP:
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>

The above example will output:

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
certo che puoi (gighen permettendo) casomai aggiungi dr gighen
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
ok... intanto ho provato questo script...

Codice:
<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

in pratica elimina la sbarra però non i simboli di minore e maggiore
bò... vedete un po voi ... che avete studiato... io sono ignorante
ho la 5a elementare e l'ho presa a pagamento ih ih ih


attendo risposta da gighen...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
dimenticavo
in poche parole disattiva le funzioni dei tag
no non li disattiva li fa sparire dalla stringa restituendoti la stringa pulita dai tag e dal loro contenuto come ti ho fatto vedere nell'esempio

@alex
in che senso è terribile?
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Non è una cosa difficile da comprendere. Se hai questo script:
PHP:
<?php
$testo = '<p>Questo testo con i segni di maggiore e minore verrà purificato.</p>';
$testo = htmlspecialchars($testo);

echo $testo;
?>
L'output HTML sarà:
Codice:
&lt;p&gt;Questo testo con i segni di maggiore e minore verrà purificato.&lt;/p&gt;
Questo evita che qualche malintenzionato compia attacchi XSS, ma a video il risultato sarà esattamente lo stesso.
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
scusami signor gattino

ho preso il tuo script il primo che mi hai dato
e ho fatto una copia di tutto lo script in un altra cartella

e i simboli minore e maggiore la prima volta me li ha copiati
la seconda volta invece me li ha esclusi...

ho l'impressione che tutto lo script deve essere ricontrollato

Codice:
<div align=center> 
<iframe name="ricezione2" src="deposito_messaggi.php" width=500 height=200></iframe>


<form  action="#" method="POST">
Nome: <input type="text" name="nome">
Messaggio: <input type="text" name="messaggio">
<input type="submit" value="invia messaggio">
</form>


<?


$nome=strip_tags($_POST['nome'], '<br><b>');
$messaggio=strip_tags($_POST['messaggio'], '<br><b>');


$var=fopen("deposito_messaggi.php","r");
$dim=filesize("deposito_messaggi.php");
$contenuto=fread($var,$dim);
 fclose($var);


$var=fopen("deposito_messaggi.php","w+");
 fwrite($var, "<font color=blue>$nome: </font>$messaggio <br /> $contenuto");
fclose($var);
?>


<a href="deposito_messaggi.php">vai alla pagina dei messaggi</a>
</div>


nel file deposito_messaggi.php

Codice:
<font color=blue>max_400: </font>ciao  <br /> <font color=blue>: </font> <br /> <font color=blue>max_400: </font> <br /> <font color=blue>max_400: </font>provo a togliere minore e maggiore < > <br /> <font color=blue>: </font> <br /> <?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control:  post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

guarda bene quella riga
provo a togliere minore e maggiore < >

come vedi sono stati copiati... alì mortèè
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
ho provato dr. gighen

esattamente l'output che vedo io (ho firefox come browser)

Codice:
<p>Questo testo con i segni di maggiore e minore verrà purificato.</p>

in pratica copia a pappagallo i tag... e comunque va bene lo stesso...

lo posso scrivere nei miei appunti ossia il forum col tuo nick "gighen"?

tanto per ricordarmene in futuro
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
però.... applicato al mio lavoro non funziona... forse ho sbagliato qualkosa

Codice:
$nome = htmlspecialchars($_POST['nome']);
$messaggio=htmlspecialchars($_POST['messaggio']);

i simboli minore e maggiore me li copia... bò :book:
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Infatti in questo modo i simboli minore e maggiore vengono copiati, solamente che lo script è sicuro perché sono convertiti nelle rispettive entità HTML e quindi sei al riparo da attacchi XSS. Non capisco... a te serve che vengano completamente eliminati o ti serve uno script sicuro?
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
mà.... forse è meglio che vengano sostituiti... sto più tranquillo

come inizialmente avevo scritto io
solo che lo script era "terribile"
col vostro aiuto lo voglio impostare meglio :book:

grazie
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
dunque dunque... ho provato cosi...

Codice:
$nome = str_replace("<", "-", $_POST['nome']);
$nome = str_replace(">", "-", $_POST['nome']);
$messaggio = str_replace("<", "-", $_POST['messaggio']);
$messaggio = str_replace(">", "-", $_POST['messaggio']);


ed ecco il risultato...
1296042424.jpg


come vedete il simbolo di maggiore viene ricopiato o stesso
ho sbagliato qualkosa?
 

Allegati

  • ccccccccc.jpg
    ccccccccc.jpg
    62,2 KB · Visite: 154
Ultima modifica:

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
in questo modo funziona...

Codice:
<?
if(isset($_POST['ok'])){

$data_ora=date("d-m-y-G:i");

$nome = $_POST['nome'];
$messaggio = $_POST['messaggio'];

$nome = str_replace("<", "-", $nome);
$nome = str_replace(">", "-", $nome);
$messaggio = str_replace("<", "-", $messaggio);
$messaggio = str_replace(">", "-", $messaggio);

ho aggiunto data e ora più isset collegato al pulsante "invia messaggio"
per evitare la riga vuota iniziale

ecco il risultato stampato a video
1296043905.jpg


sta volta funziona ... :mavieni: entrambi i simboli <> vengono convertiti in trattini
ma sarà la forma corretta? :book:

Codice:
$nome = $_POST['nome'];
$messaggio = $_POST['messaggio'];

$nome = str_replace("<", "-", $nome);
$nome = str_replace(">", "-", $nome);


in particolare la riga
Codice:
$nome = $_POST['nome'];

avrei preferito in
Codice:
$nome = str_replace("<", "-", $_POST['nome']);

ma facendo cosi non funziona correttamente
 
Discussioni simili
Autore Titolo Forum Risposte Data
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
W Web Messenger come "MSN-Messenger" Ajax 8
G Planet Games - Patch pes 2008 - Messenger Presenta il tuo Sito 2
H Messengerlandia ( contatti msn messenger , yahoo messenger e altro ) Presenta il tuo Sito 7
thejeckel messenger 8004888d Windows e Software 0
R messenger e WinME Sicurezza e Virus 0
peppoweb MSN Messenger: no, quella non e' una patch è un VIRUS Sicurezza e Virus 1
peppoweb Messenger arriva alla versione 6 Windows e Software 0
peppoweb ICQ, AIM, MSN Messenger... al sicuro Sicurezza e Virus 0
G Codice html Javascript 1
M Collegamento tra form html e script php PHP 4
L Ricezione dei dati su file php da modulo html PHP 6
F Creare elementi html con javascript Javascript 2
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
W visualizzare solo file html e sottocartelle di una cartella PHP 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
G img html HTML e CSS 3
M Come fare un countdown in HTML? HTML e CSS 4
D Stampa a video in altra pagina html Database 3
A inserire variabile php colore in div html PHP 2
F Tv in html Offerte e Richieste di Lavoro e/o Collaborazione 1
N Script elenco file HTML HTML e CSS 5
L salvare codice html in mysql PHP 3
Cosina htaccess redirect 301 senza estensione html Web Server 6
E Errore di lettura php in html PHP 8
M HTML e PHP Offerte e Richieste di Lavoro e/o Collaborazione 3
C Form email php su pagina index.html? PHP 21
Shyson Meglio Javascript o HTML? Javascript 4
P inserimento icone social tramite html HTML e CSS 1
Z Mod_rewrite da HTML in PHP PHP 3
L Collegare un form html ad un database access Javascript 2
P HTML integrazione wordpress HTML e CSS 0
C [RISOLTO]Inserimento variabile php in input html PHP 20
L Eliminare estensione .html HTML e CSS 9
max1974 html in tooltip Javascript 0
C Risalire al php da html PHP 27
felino Esportare tabella HTML in PDF, quale libreria usare? Javascript 1
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
L [RISOLTO] Stampa a video risultato count in html PHP 13
V Servizio design pagina web e download in self contained html file Discussioni Varie 1
F [PHP] Form html PHP 2
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
R Aiuto sito html Offerte e Richieste di Lavoro e/o Collaborazione 3
M Estrarre dati da una select HTML PHP 3
G FORM HTML E PHP PHP 0
max1974 [HTML] Columns grid on modal form HTML e CSS 0
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
F [PHP] [HTML] Tabella cambia pagina responsive PHP 8
M [PHP] [HTML] Centrare in verticale un pulsante in una tabella PHP 3
S [HTML] Effetto su testo da togliere HTML e CSS 0

Discussioni simili