Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/08/2013, 03:33
kobety
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Seguridad de un programa junto con wordpress

ok muchas gracias! es que hace poco encontré este código por internet, y decían de ponerlo en el .htaccess, pero al ponerlo, me da error y no me deja hacer nada :S:S ni acceder a ningún sitio de mi programa
Código PHP:
Ver original
  1. # BEGIN paginaweb
  2. <IfModule mod_rewrite.c>
  3. RewriteEngine On
  4. RewriteBase /paginaweb/
  5. RewriteRule ^index\.php$ - [L]
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteRule . /paginaweb/index.php [L]
  9. </IfModule>
  10.  
  11. ## Seguridad extra para PHP  
  12. php_flag safe_mode on  
  13. php_flag expose_php off  
  14. php_flag display_errors off  
  15.  
  16. ## Manejo de errores de Apache. Cuando se produzca uno de estos errores, redirigimos a una pagina especial desarrollada por nosotros.  
  17. ErrorDocument 401 /error401.html  
  18. ErrorDocument 403 /error403.html  
  19. ErrorDocument 404 /error404.html  
  20.    
  21.    
  22. RewriteEngine On  
  23.    
  24. Options +FollowSymLinks  
  25. # Evitar escaneos y cualquier intento de manipulación malintencionada  
  26. # de la URL. Con esta regla es imposible lanzar ataques de inyección (SQL, XSS, etc)  
  27. RewriteCond %{HTTP_USER_AGENT} ^$ [OR]  
  28. RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR]  
  29. RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR]  
  30. RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR]  
  31. RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|snoopy|curl|wget|winhttp|python|nikto|scan|clshttp|archiver|loader|email|harvest|fetch|extract|grab|miner|suck|reaper|leach)(.*) [NC,OR]  
  32.  
  33. RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR]  
  34. RewriteCond %{HTTP_REFERER} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR]  
  35. RewriteCond %{QUERY_STRING} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23|%60)(.*) [NC,OR]  
  36. RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR]  
  37. RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC]  
  38.  
  39. RewriteRule ^(.*)$ error.php [NC]  
  40. ## No permitir acceso al .htaccess  
  41. order allow,deny  
  42. deny from all  
  43.  
  44. ## Evitar que se liste el contenido de los directorios  
  45. Options All -Indexes  
  46.  
  47. ## Lo mismo que lo anterior  
  48. IndexIgnore *  
  49.  
  50. ## Denegar el acceso a robots dañinos, browsers offline, etc  
  51. RewriteBase /  
  52. RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]  
  53. RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]  
  54. RewriteCond %{HTTP_USER_AGENT} ^attach [OR]  
  55. RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]  
  56. RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]  
  57. RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]  
  58. RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]  
  59. RewriteCond %{HTTP_USER_AGENT} ^Zeus  
  60. ##redireccionar a los robots a otra web  
  61. RewriteRule ^.*$ http://www.otraweb.com [R,L]  
  62.  
  63. # Protegerse contra los ataques DOS limitando el tamaño de subida de archivos  
  64. LimitRequestBody 10240000
  65.  
  66.  
  67.  
  68. # END paginaweb

bueno, comento también que mi código es el siguiente para el login y eso, si me pudierais decir si tiene algún fallo de seguridad me gustaría saberlo, muchas gracias!

login.html
Código HTML:
Ver original
  1. <form action="login.php" method="POST">
  2.     <table>
  3.         <tr><td>Usuario:</td><td> <input required type="text" name="user" /><br /></td></tr>
  4.         <tr><td>Contraseña:</td><td> <input required type="password" name="pass" /><br /></td></tr>
  5.     </table>
  6.     <br>
  7.     <input type="submit" style=" font-weight:900;color: white; background-color: #0F37A1; border: 3pt ridge lightgrey" value="Acceder" />
  8.     </form>

login.php
Código PHP:
Ver original
  1. require_once('funciones.php');
  2. conectar('localhost', 'user', 'pass', 'bbdd');
  3. ini_set("default_charset", "utf-8");
  4. $user = strip_tags($_POST['user']);
  5. $pass = strip_tags(sha1($_POST['pass']));
  6.  
  7. $query = mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'" AND pass="'.mysql_real_escape_string($pass).'"');
  8. if($existe = mysql_fetch_object($query))
  9. {//Si existe el usuario
  10.     $_SESSION['user'] = $user; //Guardamos la variable de sesión
  11.    
  12.    
  13.    
  14.     $consulta = mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'"');//Cogemos la fecha de la última conexion y el estado de la conexión;
  15.         while($row=mysql_fetch_array($consulta)){  
  16.             $fecha=$row['Sesion'];
  17.             $conectado=$row['Conectado'];
  18.         }
  19.    
  20.     if($conectado==1){ //Si esta como conectado, comprobamos su última conexión
  21.         $datetime1 = date_create($fecha);
  22.        
  23.         $fechaact=date("d-m-Y H:i:s", time());     
  24.        
  25.         $datetime2 = date_create($fechaact);
  26.        
  27.         $interval = date_diff($datetime2, $datetime1);
  28.  
  29.         if(($interval->format('%d%H%i'))>=00010){//Si hace más de 10 minutos que se ha conectado, dejamos al usuario entrar de nuevo
  30.             $uno=1;
  31.             $meter= mysql_query('UPDATE usuarios
  32.             SET Conectado="'.mysql_real_escape_string($uno).'",
  33.                 Sesion="'.date_format($datetime2, 'Y-m-d H:i:s').'"
  34.             WHERE  usuarios.user = "'.mysql_real_escape_string($user).'"')OR DIE ("fallo");
  35.            
  36.             $_SESSION['logged'] = 'yes';
  37.            
  38.             echo '<script>window.location="logeado.php"</script>';
  39.         }else{
  40.             echo"Este usuario está activo.";
  41.             echo"<br><br><br>
  42.             <a href='login.html'><input type='submit' style=' font-weight:900;color: white; background-color: #0F37A1; border: 3pt ridge lightgrey' value='Volver Al Inicio' onclick='location='login.html''></a>";
  43.  
  44.             exit;  
  45.         }
  46.        
  47.        
  48.     }else{
  49.         $uno=1;
  50.         $fechaact=date("d-m-Y H:i:s", time());
  51.         $datetime2 = date_create($fechaact);
  52.         //var_dump(date_format($datetime2, 'Y-m-d H:i:s'));
  53.                
  54.             $meter= mysql_query('UPDATE usuarios
  55.             SET Conectado="'.mysql_real_escape_string($uno).'",
  56.                 Sesion="'.date_format($datetime2, 'Y-m-d H:i:s').'"
  57.             WHERE  usuarios.user = "'.mysql_real_escape_string($user).'"')OR DIE ("fallo");
  58.        
  59.             $_SESSION['logged'] = 'yes';
  60.        
  61.         echo '<script>window.location="logeado.php"</script>';
  62.     }
  63.    
  64. }else{
  65.         echo 'El usuario y/o pass son incorrectos.';
  66.        
  67.         echo"<form action='login.html'>";
  68.         echo"<br><br><br><input type='submit' style=' font-weight:900;color: white; background-color: #0F37A1; border: 3pt ridge lightgrey' value='Volver Al Inicio' onclick='location='login.html''>";
  69.         echo"</form>";
  70. }

Decir también que en este sitio solo entraría yo por ejemplo y algún empleado para ver como van las cosas, registros, facturas.....

PD: para que conste, el css es que estoy en ello, pero para que tenga un poquito de formato le he puesto color a los inputs :P y perdón por el chorro

Última edición por kobety; 02/08/2013 a las 04:14