Str_replace
#1
Posted 23/07/2004, 12:08
Tipo.... se o cara, maliciosamente, digitar qualquer tag html ou JS no form e enviar ao BD isso poderá causar falha no programa.... então pensei em usar o str_replace para retirar algumas tags.... alguém jah usou isso e funcionou?!
"A humanidade está perdendo seus maiores gênios... Aristóteles faleceu, Newton bateu as botas, Einstein morreu, e eu não tô passando muito bem hoje... "
#2
Posted 23/07/2004, 12:28
str_replace("@#$!)"outra_palavra";$texto);
_________________________________________________________________
echo htmlspecialchars("$var", ENT_QUOTES);
Com isso ele nao colocara codigos html na pagina
<img src="img">
se tivesse isso ai ele exibiria uma imagem na hora do select.. se uzar aquela função zinha lah em cima iria aparecer só o texto e nao uma imagem.
qualquer coisa. veja no site do php.net
#3
Posted 23/07/2004, 13:16
htmlspecialchars();
Faça dessa forma:
Ao gravar no banco de dados utilize addslashes(), e ao imprimir os resultados na tela, utilize:
$texto = stripslashes($texto);
$texto = htmlspecialchars($texto);
$texto = nl2br($texto);
Isso elimina as barras "\" que foram adicionadas pelo addslashes, limpa os códigos html colocando-os como texto mesmo, e muda os enters para <br>
Agora um comentário, se estiver acontecendo um erro ao postar seus tópicos, não poste novamente, pois ele já foi enviado, sempre que acontecer o erro, verifique para ver se não foi postado já . Você teve alguns posts repedidos hein
#4
Posted 23/07/2004, 13:19
como ficaria a inserção no banco??Você não precisa usar str_replace, existe outra função pronta para eliminar os códigos html:
htmlspecialchars();
Faça dessa forma:
Ao gravar no banco de dados utilize addslashes(), e ao imprimir os resultados na tela, utilize:
$texto = stripslashes($texto);
$texto = htmlspecialchars($texto);
$texto = nl2br($texto);
Isso elimina as barras "\" que foram adicionadas pelo addslashes, limpa os códigos html colocando-os como texto mesmo, e muda os enters para <br>
Agora um comentário, se estiver acontecendo um erro ao postar seus tópicos, não poste novamente, pois ele já foi enviado, sempre que acontecer o erro, verifique para ver se não foi postado já . Você teve alguns posts repedidos hein
mysql_query... com addslashes(),
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de Deus e vai.."
#5
Posted 23/07/2004, 13:38
$texto = $_POST['mensagem']; // Imagine o texto Mario's Bro
$texto = addslashes($texto); // Aqui ele iria ficar Mario\'s Bro
mysql_query("INSERT INTO tabela (mensagem) VALUES ('$texto')");
E quando for retornar o texto, teria que aplicar o stripslashes para remover a barra adicionada
#6
Posted 23/07/2004, 13:43
dei uma lidinha no manual e tirei minhas duvidas!!
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de Deus e vai.."
#7
Posted 23/07/2004, 14:12
Agora um comentário, se estiver acontecendo um erro ao postar seus tópicos, não poste novamente, pois ele já foi enviado, sempre que acontecer o erro, verifique para ver se não foi postado já . Você teve alguns posts repedidos hein
Sr. moderador....volto a pedir desculpas ....eu tive um problema com minha conexão com o server WMONLINE as 11:56 . Eu estava obtendo mensagens de erro....
Gostaria que os demais colegas me perdoassem pelo o ocorrido e afirmo com certeza que incidentes como esse não mais ocorrerão.... Há tanto tempo cadastrado nessa comunidade esse foi meu primeiro problema.....
Grato e novamente ....perdão!
"A humanidade está perdendo seus maiores gênios... Aristóteles faleceu, Newton bateu as botas, Einstein morreu, e eu não tô passando muito bem hoje... "
#8
Posted 23/07/2004, 14:16
Gostei do Sr. Moderador uhuhuhuhuh. Parabéns pela atitude de se desculpar
#9
Posted 23/07/2004, 14:34
A vantagem é que você pode permitir algumas tags e bloquear as demais.. por exemplo:
PHP |
<?php $texto = "Olá <b>Usuário</b>, <a href=teste.html>clique aqui</a> e visite meu site!"; $texto = strip_tags($texto, '<b><i><u>'); ?> |
Nesse caso, você removeria a tag <a> do $texto, mas a tag <b> passaria, pois você liberou ela utilizando o segundo parametro do strip_tags().. também passariam as tags <i> e <u>!! Interessante, não!? Muito útil para fóruns, murais e etc..
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]
[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]
#10
Posted 23/07/2004, 14:48
qual o real perigo de não se usar por exemplo htmlspecialchars ou str_replace ou coisas do gênero?!
Tah bom....eu sei que o user pode dar uma injeção de SQL na query mas isso apenas resultaria na não exibição de um conteúdo....certo?! E quem sofreria o problema seria ele mesmo...poiis não conseguiria ver o conteúdo....
"A humanidade está perdendo seus maiores gênios... Aristóteles faleceu, Newton bateu as botas, Einstein morreu, e eu não tô passando muito bem hoje... "
#11
Posted 23/07/2004, 15:08
Além do SQL Injection, o cara pode colocar tags que danificariam o seu site, com JavaScript, IFrames, popups e tudo que o html proporciona.
Se ele colocar um iframe que chame a mesma página (no caso, a do mural) dentro dele, isso geraria um loop infinito, ou seja, o seu mural com o iframe seriam abertos, e abertos, e abertos.. consumindo sua banda e atrapalhando a navegação do se usuário.
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]
[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]
#12
Posted 23/07/2004, 15:08
Imagine assim para ter o valor do perigo:
Provavelmente você conecta ao banco de dados, se ele faz um simples código que somente apresenta pra ele o $login, $senha ? Pronto, perdeu sua base de dados completa. Qualquer outra coisa, algo como, ele finaliza a query e poem a simples função unlink('arquivo.php'). Perdeu os arquivos também, o que sobrou do seu site? O diretório cgi-bin
#13
Posted 23/07/2004, 15:16
Caras entaum o negócio é proteger mesmo o code e restringir todo e qualquer tipo de caracters.....
Bem....eu uso todas as funções para tirar tags HTML de meu sistema de news e o addslashes para inserir dados no BD.... será que é necessário fazer mais alguma coisa?!
"A humanidade está perdendo seus maiores gênios... Aristóteles faleceu, Newton bateu as botas, Einstein morreu, e eu não tô passando muito bem hoje... "
#14
Posted 23/07/2004, 15:22
#15
Posted 23/07/2004, 15:26
Cara nem pensar em register_globals ON.... isso é doidera....Quanto a segurança é bom trabalhar com o register_globals em OFF, não fazer permição 777 para as pastas que você irá enviar arquivos, mas sim envia-los por funções de ftp, e restringuir os tipos de arquivos que podem ser enviados. Já imaginou ele enviar um php com alguns funções "extras"?
Agora me diga uma coisa....essas funções de tratamento de tagas seja elas qual forem.... seria interessante usa-las em UPDATE....de dados.....
Eu penso que seja..... e ai....!?
"A humanidade está perdendo seus maiores gênios... Aristóteles faleceu, Newton bateu as botas, Einstein morreu, e eu não tô passando muito bem hoje... "
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)