elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  publico lector de archivos con maquina de estados.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: publico lector de archivos con maquina de estados.  (Leído 2,603 veces)
bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
publico lector de archivos con maquina de estados.
« en: 2 Abril 2010, 06:34 am »

hola, hace poco tiempo me puse aprender sobre php, me parecio un lenguaje finisimo y muy potente.(comparado con vb ;) que es el que siempre e usado), y como hice un codigo para leer un archivo de texto y poder editarlo, (lo hice porque me daba ladilla tener que estar descargando en cualquier maquina qu eme conecte filezilla(el cliente ftp que uso) y despue slos archivos y bla bla bla. como e aprendido mucho de esta comunidad ahora publico esto para ver si a agluien mas le sirve, y para que me den sus comentarios a ver si esta mal echo o x cosa, de todas formas quiero agregarle algunas cosas al codigo y despues lo ire publicando mientras lo mejore.

Código
  1. <?php
  2. echo"<center>\n<br><br>";
  3. if (isset ($_POST["estado"])){
  4. $estado=$_POST["estado"];
  5. if (isset($_POST["ar"])){
  6. $archivo=$_POST["ar"];;
  7. }
  8. else{
  9. header('location:'.$_SERVER['REQUEST_URI']);
  10. }
  11. switch($estado){
  12. case 1:
  13. echo form1();
  14. break;
  15. case 2:
  16. echo '<form method="post" action="'.$_SERVER['REQUEST_URI'].'">
  17. <textarea name="text" cols="50" rows="25">';
  18. echo abrir($archivo);
  19. echo '</textarea><br>
  20. <input type="submit" value="guardar">
  21. <input type="hidden" name="estado" value="3">
  22. <input type="hidden" name="ar" value='.$archivo.'></form>';
  23. break;
  24. case 3:
  25. guardar($_POST["text"],$archivo);
  26. echo '<a href="'.$_SERVER['REQUEST_URI'].'">guardado</a>';
  27. break;
  28. }
  29. }
  30. else{
  31. echo form1();
  32. }
  33. echo '</center>';
  34. function form1(){
  35. $form='<form method=post action="'.$_SERVER['REQUEST_URI'].'">
  36. <input type="text" name="ar" size="50">
  37. <input type="hidden" name="estado" value=2><br><br>
  38. <input type="submit" value="seleccionar"></form>';
  39. return $form;
  40. }
  41. function abrir($destino,$num=1){
  42. if ((preg_match('@^http://@',$destino)) or ( !$num ==1) ){
  43. return file_get_contents($destino);
  44. }
  45. else{
  46. if (file_exists($destino)){
  47. $abrir = fopen($destino,"r");
  48. return trim(fread($abrir,filesize($destino)));
  49. @fclose($abrir);
  50. }
  51. }
  52. }
  53. function guardar($texto,$destino){
  54. $abrir = fopen($destino,"w");
  55. @fputs($abrir,$texto);
  56. @fclose($abrir);
  57. }
  58. ?>
  59.  


En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: publico lector de archivos con maquina de estados.
« Respuesta #1 en: 2 Abril 2010, 08:23 am »

Observaciones:

1.Linea 6, tienes doble punto y coma.
2.Mal filtro de la variable "ar", provocando un XSS.

Corección de errores:
Código
  1. <?php /* Corección de errores By: Shell Root */
  2. echo"<center>\n<br><br>";
  3.  
  4. if (isset ($_POST["estado"])){
  5. $estado = $_POST["estado"];
  6. if (isset($_POST["ar"])){
  7. $archivo = $_POST["ar"];
  8. }
  9. }else{
  10. header('location:'.$_SERVER['REQUEST_URI']);
  11. }//End Else
  12.  
  13. switch($estado){
  14. case 1:
  15. echo form1();
  16. break;
  17. case 2:
  18. echo '<form method="post" action="'.$_SERVER['REQUEST_URI'].'">
  19.   <textarea name="text" cols="50" rows="25">'.abrir($archivo).'</textarea>
  20. <br>
  21. <input type="submit" value="guardar">
  22. <input type="hidden" name="estado" value="3">
  23. <input type="hidden" name="ar" value='.htmlspecialchars($archivo,ENT_QUOTES). /*Para evitar el XSS*/ '>
  24.    </form>';
  25. break;
  26. case 3:
  27. guardar($_POST["text"],$archivo);
  28. echo '<a href="'.$_SERVER['REQUEST_URI'].'">Guardado</a>';
  29. break;
  30. }//End Switch
  31. }else{
  32. echo form1();
  33. }//End Else
  34.  
  35. echo '</center>';
  36.  
  37. function form1(){
  38. $form='<form method=post action="'.$_SERVER['REQUEST_URI'].'">
  39. <input type="text" name="ar" size="50">
  40. <input type="hidden" name="estado" value=2><br><br>
  41. <input type="submit" value="seleccionar"></form>';
  42. return $form;
  43. }//End Fuction form1
  44.  
  45. function abrir($destino,$num=1){
  46. if ((preg_match('@^http://@', $destino)) or (!$num ==1) ){
  47. return file_get_contents($destino);
  48. }else{
  49. if (file_exists($destino)){
  50. $abrir = fopen($destino,"r");
  51. return trim(fread($abrir,filesize($destino)));
  52. @fclose($abrir);
  53. }//End If
  54. }//End Else
  55. }//End Fuction abrir
  56.  
  57. function guardar($texto,$destino){
  58. $abrir = fopen($destino,"w");
  59. @fputs($abrir,$texto);
  60. @fclose($abrir);
  61. }//End Function guardar
  62. ?>

Podeis generar una Expresión Regular algo así. Para verificar si el archivo tiene extensión.
Código:
/(\.(\w){1,3})||(\.(\w){1,4})/


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: publico lector de archivos con maquina de estados.
« Respuesta #2 en: 2 Abril 2010, 16:44 pm »

Esta es la mi expresion regular...
Código
  1. (\w+)$
Captura desde atras los caracters alfa-numericos y como el "punto"  no es alfa-numerico, la captura se detiene.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: publico lector de archivos con maquina de estados.
« Respuesta #3 en: 2 Abril 2010, 19:50 pm »

gracias si, es que estoy haciendo uno mas complejo, y decidi poner lo que llevaba a ver que opinaban.

bueno de seguridad hay si estoy raspado, me voy a sentar a leer sobre el tema porque tambien hice un formulario de login, para que ese tipo de funciones solo esten disponibles para mi, y no se nada de sql injection y no se si alguien se puede aprovechar algun fallo.

bueno lo de comprobar la extension del archivo, lo pense pero no estuve muy interesdo en ponerselo porque hay mucha variedad de archivos de texto que tienen diferentes extensiones o no tienen ninguna extension y no dejan de ser archivos de texto.

lo que si es que aveces hay codigo que como el de http://www.google.com que se ejecuta en ves de solo ponerlo y no se como acomodar eso, y lo otro es que quiere hacer como cuando uno pone un codigo aqui que tiene colores.

Bueno lo voy a ir acomodando y despues posteeo lo que haga.
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: publico lector de archivos con maquina de estados.
« Respuesta #4 en: 2 Abril 2010, 19:52 pm »

lo que si es que aveces hay codigo que como el de http://www.google.com que se ejecuta en ves de solo ponerlo y no se como acomodar eso,...
What The Fuck!


...lo otro es que quiere hacer como cuando uno pone un codigo aqui que tiene colores.
Sistema GeSHi!
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: publico lector de archivos con maquina de estados.
« Respuesta #5 en: 2 Abril 2010, 20:40 pm »

lo que si es que aveces hay codigo que como el de http://www.google.com que se ejecuta en ves de solo ponerlo y no se como acomodar eso,...
What The Fuck!

bueno es que yo queria despues d eeso hacer un bot, o algo por el estilo para sacar correos y dirrecciones http entonces se me ocurrio usar esto para abrir dirrecciones url, tipo google.com y hay fue cuando agregue file_get_contents($destino), pero con goolge me pone el codigo y ademas como que si lo ejecutara aqui te dejo una imagen y si quieres prueba  y veras pones en el espacio de texto http://www.google.com  y deberia salirte algo por el estilo





...lo otro es que quiere hacer como cuando uno pone un codigo aqui que tiene colores.
Sistema GeSHi!

En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] Diagramación de una máquina de estados fintios (FSM)
Scripting
eenube 0 3,763 Último mensaje 15 Marzo 2016, 01:36 am
por eenube
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines