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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 65
181  Programación / PHP / Re: Impidir ataques sql. en: 5 Febrero 2008, 17:56 pm
He visto un código muy bueno, que es el que implementan los foros SMF... la cosa va más o menos así:

Código
  1. function db_query($db_string, $file, $line)
  2. {
  3. global $db_cache, $db_count, $db_connection, $db_show_debug, $modSettings;
  4.  
  5. // One more query....
  6. $db_count = !isset($db_count) ? 1 : $db_count + 1;
  7.  
  8. // Debugging.
  9. if (isset($db_show_debug) && $db_show_debug === true)
  10. {
  11. // Initialize $db_cache if not already initialized.
  12. if (!isset($db_cache))
  13. $db_cache = array();
  14.  
  15. if (!empty($_SESSION['debug_redirect']))
  16. {
  17. $db_cache = array_merge($_SESSION['debug_redirect'], $db_cache);
  18. $db_count = count($db_cache) + 1;
  19. $_SESSION['debug_redirect'] = array();
  20. }
  21.  
  22. $db_cache[$db_count]['q'] = $db_string;
  23. $db_cache[$db_count]['f'] = $file;
  24. $db_cache[$db_count]['l'] = $line;
  25. $st = microtime();
  26. }
  27.  
  28. // First, we clean strings out of the query, reduce whitespace, lowercase, and trim - so we can check it over.
  29. if (empty($modSettings['disableQueryCheck']))
  30. {
  31. $clean = '';
  32. $old_pos = 0;
  33. $pos = -1;
  34. while (true)
  35. {
  36. $pos = strpos($db_string, '\'', $pos + 1);
  37. if ($pos === false)
  38. break;
  39. $clean .= substr($db_string, $old_pos, $pos - $old_pos);
  40.  
  41. while (true)
  42. {
  43. $pos1 = strpos($db_string, '\'', $pos + 1);
  44. $pos2 = strpos($db_string, '\\', $pos + 1);
  45. if ($pos1 === false)
  46. break;
  47. elseif ($pos2 == false || $pos2 > $pos1)
  48. {
  49. $pos = $pos1;
  50. break;
  51. }
  52.  
  53. $pos = $pos2 + 1;
  54. }
  55. $clean .= ' %s ';
  56.  
  57. $old_pos = $pos + 1;
  58. }
  59. $clean .= substr($db_string, $old_pos);
  60. $clean = trim(strtolower(preg_replace(array('~\s+~s', '~/\*!40001 SQL_NO_CACHE \*/~', '~/\*!40000 USE INDEX \([A-Za-z\_]+?\) \*/~'), array(' ', '', ''), $clean)));
  61.  
  62. // We don't use UNION in SMF, at least so far.  But it's useful for injections.
  63. if (strpos($clean, 'union') !== false && preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0)
  64. $fail = true;
  65. // Comments?  We don't use comments in our queries, we leave 'em outside!
  66. elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false)
  67. $fail = true;
  68. // Trying to change passwords, slow us down, or something?
  69. elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0)
  70. $fail = true;
  71. elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0)
  72. $fail = true;
  73. // Sub selects?  We don't use those either.
  74. elseif (preg_match('~\([^)]*?select~s', $clean) != 0)
  75. $fail = true;
  76.  
  77. if (!empty($fail))
  78. {
  79. log_error('Hacking attempt...' . "\n" . $db_string, $file, $line);
  80. fatal_error('Hacking attempt...', false);
  81. }
  82. }
  83.  
  84. $ret = mysql_query($db_string, $db_connection);
  85. if ($ret === false && $file !== false)
  86. $ret = db_error($db_string, $file, $line);
  87.  
  88. // Debugging.
  89. if (isset($db_show_debug) && $db_show_debug === true)
  90. $db_cache[$db_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st));
  91.  
  92. return $ret;
  93. }

El modo de uso es simple, por ejemplo:

Código
  1. db_query("InsERT into TABLA values ('bla', 'Jojojo', '$variable')" , __FILE__, __LINE__)

Es muy bueno para echarle un ojo y aprender.

Un saludo!
182  Programación / PHP / Re: Actualizar base de datos periodicamente en: 5 Febrero 2008, 17:48 pm
Si estás trabajando sobre Gnu/Linux, la programación de crons es muy sencilla y está muy bien documentada en la red. Si estás en Windows (que personalemente pienso que no es de lo mejor para este tipo de cosas), te puedo recomendar por experiencia un software llamado pycron.

Un saludo!
183  Programación / Programación Visual Basic / Re: Leer en una BD el user, pass y mensajes en: 4 Febrero 2008, 16:39 pm
La verdad en este caso es mejor que intentes hacerlo tu mismo... que eso de esperar que las demás personas te lo den todo no está bien. Es cierto también que lo estás pidiendo de buena gana y muy respetuosamente, pero repito, sería mejor que intentaras. En este tipo de foro es más fácil que te colaboren con problemas específicos.

Así que si tienes un problema con el programa, mientras lo estás haciendo, pues planteas tu duda y los usuarios y moderadores (excelentes, por cierto) intentarán ayudarte.

Un saludo!
184  Programación / Java / Re: Como utilizo el siguiente codigo? en: 4 Febrero 2008, 14:32 pm
       
Si por ahi hubiera un  tutorial de el uso de codigos en Java se los agradeceria saludos.



http://foro.elhacker.net/index.php/topic,34891.0.html
185  Programación / Java / Re: Java:Correcta utilizacion de while y for. en: 31 Enero 2008, 15:31 pm
Hay algo que debes (y deben la mayoría) tener claro. En C/C++ recuerdo que los strings se podían usar como arreglos de caracteres "literalmente hablando". Por lo tanto podías hacer cosas como intentar recuperar un caracter de la cadena así:

Código:
cadena[x]

Pero, en Java la cosa cambia un poco. Las cadenas, o sea objetos de la clase String, son tratados como OBJETOS. Por tanto, es necesario acceder a sus componentes a través de métodos y variables (del objeto). En ese órden de ideas, si por ejemplo quieres en cualquier momento saber la longitud de una cadena, puedes hacer esto:

Código:
//En la variable longitud se guardará la, valga la redundancia, longitud de la cadena
int longitud = cadena.length();

De esta forma, puedes tranquilamente hacer cosas como estas (tal como te comentaba mi amigo Ragnarok):

Código:
for ( int cuenta = 1; cuenta < cadena.length(); cuenta++ )
//Lo que sea!

Un saludo!
186  Programación / PHP / Re: Sistema de Themes en: 24 Enero 2008, 20:08 pm
Pero solo con CSS no podrás hacer mucho... solo cambiar colores y la posición y aspecto de algunas cosas. Si quieres que los diferentes temas sean "realmente" diferentes, has lo que dice Universal SAC.

Un saludo!
187  Programación / Java / Re: DUDA DE CODIGO en: 24 Enero 2008, 19:43 pm
stdin = new BufferedReader(new InputStreamReader(System.in));  //QUE ES LO QUUE HACE ESTA LINEA??

Esto hace que todo lo que digites en el teclado se guarde en un objeto BufferedReader (en este caso stdin). Lo de la excepción es cuando haya un problema en la entrada o salida de flujos (IOException).

Basta con que leas un poco... no más:

http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html
188  Programación / PHP / Re: generar tabla ... en: 21 Enero 2008, 15:01 pm
no tiene sentido poner </tr> y </td>

de hecho desde que comencé con html nunca los he puesto, es una feature que tiene

los navegadores son los encargados de interpretar los códigos y realmente no tiene ninguna utilidad ya que cuando comienza otro <td> se cierra el anterior automáticamente y lo mismo ocurre con los <tr>
si fuese xml ya sería otro cantar

Pues sí... como dicen por ahí: las reglas son para violarlas!

Un saludo!
189  Programación / PHP / Re: generar tabla ... en: 18 Enero 2008, 15:23 pm
Jaja, que buena excusa!
190  Programación / PHP / Re: generar tabla ... en: 17 Enero 2008, 16:06 pm
siguiendo tu esctructura, yo haría algo así :P

Código:
<?php
echo "<table><tr>";
                $contador=1;
while($row = mysql_fetch_array($result)){
if($contador > 3){
//saltamos de línea
echo = "<tr>";
$contador = 1;
}
echo "<td><a href='?action=detalle&id=" . $row['idContacto'] . "'>";
echo "<img src='http://localhost/directorio/directorio/" . $row['path'] . " width=100></a>";

                       $contador ++;
}
echo "</table>";
?>

Te olvidas de cerrar el tr.

Yo lo habia hecho así:
Código
  1. <table>
  2. <?php
  3. $x = 0;
  4. while($data = mysql_fetch_array($result) ){
  5. $x ++;
  6. if($x == 1) echo '<tr>';
  7. echo '<td>aqui los datos y demás</td>';
  8. if($x == 5) {
  9.                echo '</tr>';
  10.                $x=0;
  11.            }
  12. }
  13. ?>
  14. </table>

Es sí funciona! Aunque es muy largo. Va mi oferta (funciona o funciona):

Código
  1. <table><tr>
  2. <?php
  3. for($i=0; $i<mysql_num_rows($resultado); $i++)
  4. echo "<td> AQUI LA IMAGEN </td>".(($i+1)%3 == 0 ? "</tr>\n<tr>" : "");
  5. ?></tr></table>

Un saludo!

Edito: como veo que lo estás haciendo con mysql_fetch_array($result), te prevengo: en este caso lo tendrías que hacer con mysq_result.
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 65
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines