¿Cuál es un buen método en Ruby para evitar la inyección SQL?Prevención del método SQL Injection/Good Ruby
Respuesta
en recto hacia arriba ¿rubí? utilizar declaraciones preparadas:
require 'mysql'
db = Mysql.new('localhost', 'user', 'password', 'database')
statement = db.prepare "SELECT * FROM table WHERE field = ?"
statement.execute 'value'
statement.fetch
statement.close
Mi problema con esto es que devuelve una matriz de resultados en lugar de un campo o algo mucho más manejable ... – Zombies
Esto es solo un ejemplo de cómo usar declaraciones preparadas para una consulta de selección. Lo que hagas con los resultados depende de ti. –
No solo en Ruby: enlace sus parámetros (ya sea en la base de datos o en su código de cliente).
Mira la guía que tienen arriba en esto: http://guides.rubyonrails.org/security.html#injection
Básicamente, si desea utilizar las variables se unen en sus modelos para encontrar los datos, en lugar de parámetros en línea ..
Model.find(:first, :conditions => ["login = ? AND password = ?", entered_user_name, entered_password])
Sí, esto se ve bien. Prácticamente a lo que estoy acostumbrado en Java, gracias. – Zombies
Al menos debe mencionar que está hablando de registro activo. – sepp2k
Estaba a punto de comentar sobre esto ... en mi prisa, olvidé leer que no era específicamente para Rails/ActiveRecord ... ¡lo siento! –
Según http://ruby.railstutorial.org/ se puede prevenir Cross Site Request falsificación mediante la inserción de la etiqueta
<%= csrf_meta_tags %>
en la cabecera de la app/views/layouts/application.html.erb.
¡Buena idea para quienes trabajan con frameworks web, pero SQL Inejection! = XSS – Zombies
este Tema referencias:
http://www.ruby-forum.com/topic/90258#new
http://www.ruby-forum.com/topic/82349#143790
métodohallazgo de ActiveRecord() se ha construido en la manera de evitar la inyección de SQL por utilizando el formato
¿Hay algún sistema de este tipo para escapar de la inyección en orden? Parece que solo toma una cadena y la alimenta a la instrucción SQL. Esto provoca una vulnerabilidad cuando se utiliza para establecer params: orden que en esta función:
def list
sort_by = params[:sort_by]
@book_pages, @books = paginate :books,
:order => sort_by,
:per_page => 10
end
Hemos intentado algunos métodos para desinfectar sort_by como el orden => [ '?', sort_by] pero simplemente lo pasa a la declaración SQL como una matriz aplanada . La 'magia que escapa' no funciona por orden. ¿Debo usar gsub! para desinfectar params [: sort_by]?
- 1. Ruby on Rails y prevención XSS
- 2. Prevención de inyección SQL en ASP.Net
- 3. Prevención del recursivo C# inclusión
- 4. Prevención del cierre de Windows
- 5. Prevención de la inyección SQL en Ibatis
- 6. Prevención de inyección SQL utilizando SOLO php
- 7. Prevención contra inyección de SQL en Hibernate
- 8. Prevención del cambio automático del directorio predeterminado
- 9. Ruby: determinar el origen del método?
- 10. Prevención del envío de formularios con Dojo
- 11. prevención inyección sql para crear método en el controlador de carriles
- 12. Prevención Llamada al método sin excepción con @PreAuthorize Anotación
- 13. Prevención del mapeo parcial de costas
- 14. Ruby: método indefinido `> '
- 15. Ruby Detect método
- 16. Método abstracto en Ruby
- 17. Ruby isPrime Método
- 18. Prevención de secuencias de comandos del lado del servidor, XSS
- 19. Prevención de ataque de inyección SQL: dónde empiezo
- 20. Prevención de punteros locales
- 21. El método 'upto' en Ruby
- 22. Cadena de conversión de Ruby al nombre del método
- 23. Ruby no puede acceder a la variable fuera del método?
- 24. Equivalente de jQuery del método .send() de Ruby
- 25. ruby externalized Módulo SQL
- 26. Punteros de método en ruby
- 27. Prevención de ataques XSS
- 28. Ruby conectado a SQL Server
- 29. Método de acceso en Ruby
- 30. Ruby on Rails - Método estático
¿Con qué biblioteca? – sepp2k
Oh cualquiera, tomaré cualquiera que recomiende. – Zombies
Estoy un poco sorprendido por la baja, pero puede haber ayudado si mencionó si estaba usando un framework web o si usaba objetos simples de rubí. –