Los JSON Web Tokens son una forma muy práctica de asegurar nuestras APIs.
En esta charla veremos cuáles son sus propiedades fundamentales, cómo trabajar con ellos y qué opciones tenemos en Symfony, tanto con librerías, como con LexikJWTAuthenticationBundle y su uso del componente Guard.
자프링(자바 + 스프링) 외길 12년차 서버 개발자가 코프링(코틀린 + 스프링)을 만난 후 코틀린의 특징과 스프링의 코틀린 지원을 알아가며 코프링 월드에서 살아남은 이야기…
코드 저장소: https://github.com/arawn/kotlin-support-in-spring
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm
La recherche d’information dans les logs a toujours été chronophage tant au niveau humain que du traitement informatique : Connexion au serveur, localisation du fichier, choix du bon outil, rappel de la syntaxe, exécution de la commande, etc.
La société Elastic, éditeur du moteur de recherche ElasticSearch, édite dorénavant une pile de produits répondant spécifiquement au traitement des fichiers journaux et se résumant à « Toutes les réponses à vos questions sont dans vos logs ! ».
Cette formation d’initiation a pour objectif de vous apprendre à mettre en place la solution (stack) de monitoring elastic et à comprendre et configurer ses composants, suite Elastic (Beats, Logstash et Kibana).
La suite Elastic, qui se compose à ce jour d'Elasticsearch, Kibana, elasticsearch, APM, Beats, et va être principalement utilisé pour construire des moteurs de recherche, mais aussi agréger et manipuler des données logs.
Dans cette formation suite Elastic, nous aborderons toutes les fonctionnalités permettant de mettre en place une solution de monitoring complète.
Les points forts de la formation
- Formation pratique à hauteur de 80%.
- Formation fonctionnelle qui vous donne des compétences exploitables sur le terrain.
- Formation prenant en considération les besoins du marché.
자프링(자바 + 스프링) 외길 12년차 서버 개발자가 코프링(코틀린 + 스프링)을 만난 후 코틀린의 특징과 스프링의 코틀린 지원을 알아가며 코프링 월드에서 살아남은 이야기…
코드 저장소: https://github.com/arawn/kotlin-support-in-spring
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm
La recherche d’information dans les logs a toujours été chronophage tant au niveau humain que du traitement informatique : Connexion au serveur, localisation du fichier, choix du bon outil, rappel de la syntaxe, exécution de la commande, etc.
La société Elastic, éditeur du moteur de recherche ElasticSearch, édite dorénavant une pile de produits répondant spécifiquement au traitement des fichiers journaux et se résumant à « Toutes les réponses à vos questions sont dans vos logs ! ».
Cette formation d’initiation a pour objectif de vous apprendre à mettre en place la solution (stack) de monitoring elastic et à comprendre et configurer ses composants, suite Elastic (Beats, Logstash et Kibana).
La suite Elastic, qui se compose à ce jour d'Elasticsearch, Kibana, elasticsearch, APM, Beats, et va être principalement utilisé pour construire des moteurs de recherche, mais aussi agréger et manipuler des données logs.
Dans cette formation suite Elastic, nous aborderons toutes les fonctionnalités permettant de mettre en place une solution de monitoring complète.
Les points forts de la formation
- Formation pratique à hauteur de 80%.
- Formation fonctionnelle qui vous donne des compétences exploitables sur le terrain.
- Formation prenant en considération les besoins du marché.
This Slide contain information about the SQL injection.
Types of SQL injection and some case study about the SQL injection and some technique so we prevent our system
발표 영상: https://www.youtube.com/watch?v=Se62pRpk9A0
PDF로 받아서 보시면 더 깨끗하게 보실 수 있습니다.
지난 6개월 간 Diffusion model로 MVP를 만들면서 했던 최적화에 대한 고민과 MLops 경험을 공유합니다. 어제 DEVIEW에서 발표한 내용을 좀 더 이해하기 쉽게 수정했고, Diffusion model에 익숙치 않은 분들을 위해 전반부에 간략한 소개와 발전 과정을 정리했습니다.
최근에 Generative AI로 멋진 제품을 만들고자 하는 분들이 많아진 것 같습니다. 모두가 같은 기술에 접근할 수 있는 상황인 만큼 어떻게 다른 가치를 세상에 설득할 것인가 고민을 더 하게 되네요.
저희가 해왔던 시행 착오가 누군가에겐 도움이 되길 바랍니다!
https://symbiote-ai.com/
The “caching ecosystem” has evolved over the years – what, where, and how long you cache your web assets are now important considerations for anyone doing business on the internet. Browser cache, html5 application cache, sophisticated reverse proxies like Varnish, and the evolution of CDNs have all elevated caching as the single most effective tool for creating high performing and scalable web applications.
Using live demos, we will dive into some advance caching concepts that will enable you to squeeze the most benefits from this caching ecosystem, including:
Prefresh
Prefetching for sites
Prefetching for single page apps
Burst caching: caching for an extremely short burst of time, even a few seconds
Dynamic page caching
Cache invalidation and revalidation
However, with caching power comes caching responsibility. If not implemented correctly, these advanced techniques can degrade or even break site functionality. We will conclude with some practical exercises to define the caching strategy for key use cases:
E-commerce website
Mobile application
High traffic events.
To learn important concept of Collection and its handling plus its advantages and different class & child class of Collection and their implementations. Important interview questions of the collection.
What is JWT?
When should you use JSON Web Tokens?
WHAT IS THE JSON WEB TOKEN STRUCTURE?
JWT Process
PROS AND CONS
JWT.IO
Using JSON Web Tokens as API Keys
This Slide contain information about the SQL injection.
Types of SQL injection and some case study about the SQL injection and some technique so we prevent our system
발표 영상: https://www.youtube.com/watch?v=Se62pRpk9A0
PDF로 받아서 보시면 더 깨끗하게 보실 수 있습니다.
지난 6개월 간 Diffusion model로 MVP를 만들면서 했던 최적화에 대한 고민과 MLops 경험을 공유합니다. 어제 DEVIEW에서 발표한 내용을 좀 더 이해하기 쉽게 수정했고, Diffusion model에 익숙치 않은 분들을 위해 전반부에 간략한 소개와 발전 과정을 정리했습니다.
최근에 Generative AI로 멋진 제품을 만들고자 하는 분들이 많아진 것 같습니다. 모두가 같은 기술에 접근할 수 있는 상황인 만큼 어떻게 다른 가치를 세상에 설득할 것인가 고민을 더 하게 되네요.
저희가 해왔던 시행 착오가 누군가에겐 도움이 되길 바랍니다!
https://symbiote-ai.com/
The “caching ecosystem” has evolved over the years – what, where, and how long you cache your web assets are now important considerations for anyone doing business on the internet. Browser cache, html5 application cache, sophisticated reverse proxies like Varnish, and the evolution of CDNs have all elevated caching as the single most effective tool for creating high performing and scalable web applications.
Using live demos, we will dive into some advance caching concepts that will enable you to squeeze the most benefits from this caching ecosystem, including:
Prefresh
Prefetching for sites
Prefetching for single page apps
Burst caching: caching for an extremely short burst of time, even a few seconds
Dynamic page caching
Cache invalidation and revalidation
However, with caching power comes caching responsibility. If not implemented correctly, these advanced techniques can degrade or even break site functionality. We will conclude with some practical exercises to define the caching strategy for key use cases:
E-commerce website
Mobile application
High traffic events.
To learn important concept of Collection and its handling plus its advantages and different class & child class of Collection and their implementations. Important interview questions of the collection.
What is JWT?
When should you use JSON Web Tokens?
WHAT IS THE JSON WEB TOKEN STRUCTURE?
JWT Process
PROS AND CONS
JWT.IO
Using JSON Web Tokens as API Keys
Seguridad para aplicaciones web java con json web tokens (jwt) 2020Eudris Cabrera
Al desarrollar una aplicación, la seguridad es un punto muy importante. Cualquier código o aplicación que se ejecute en una red es vulnerable a los riesgos y puede amenazar los problemas de privacidad, seguridad e integridad.
JSON Web Token, comúnmente conocidos como JWT, es un estándar abierto (RFC 7519) que define un modo compacto y autónomo para transmitir de forma segura la información entre las partes como un objeto JSON.
En esta presentación exploramos varias alternativas para la seguridad y haciendo énfasis en la autenticación basada en token
[SOS 2009] Smart Access: Tu DNIe en tu ADChema Alonso
Charla impartida por Rames Sarwat, de SmartAccess, en la Gira Summer of Security 2009, sobre el uso del DNIe en la autenticación de usuarios en Directorio Activo.
Hack like a pro with custom VPS - Najava Negra 2019Alejandro Quesada
Presentacion sobre el desarrollo de un custom VPS (Servidor Virtual Privado gratuito) en los principales proveedores de servicio como Google, Amazon y Azure para disponer de un equipo con diferentes servicios y protocolos instalados desde 0, que nos ayudaran a proteger nuestra privacidad, asegurar la integridad de los datos así como disponer de un equipo accesible desde cualquier lugar para realizar pruebas de concepto puntuales.
A lo largo del taller se mostrarán los diferentes problemas que esta solución mitiga y se desarrollará la instalación de:
Creación de diversas cuentas en los principales proveedores.
Bastionado de la maquina VPS on Cloud
Instalación del servicio OpenVPN
Instalación del bloqueador DNS Pi Hole
Instalación servicio Owncloud (plataforma de almacenamiento privado de archivos)
Otras tools para investigación y pruebas de seguridad
Seguridad en las apis desde un punto de vista de developerCloudAppi
Seguridad en las APIs. Se explican cuales son las consideraciones a tener en cuenta en la seguridad de nuestras APIs, cuales son los principales sistemas de autenticación y autorización y se hace una introducción a los API Managers, con un ejemplo de APIgee y de WSO2.
Transparencias de la charla "Qué es eso de OAuth y como se implementa en Symfony2 (y otros)".
En esta charla dimos un repaso a los conceptos más importantes de OAuth y vimos cómo implementar nuestro propio servidor de autenticación/autorización usando Symfony2.
AWS proporciona una gama de servicios que lo ayudan a desarrollar aplicaciones móviles que pueden escalarse a cientos de millones de usuarios y alcanzar a un público global. Con AWS, es posible comenzar rápidamente, garantizar un alto nivel de calidad con pruebas en dispositivos reales en la nube y medir y mejorar la participación de los usuarios.
Seguridad en Aplicaciones Web y Comercio ElectrónicoRené Olivo
Presentación sobre vulnerabilidades que presentan las aplicaciones web y como contrarrestarlas. También explica como guardar información sensible de una manera segura.
Este verano llegan a ENCAMINA “Los Imprescindibles”, unos superhéroes muy especiales que vienen dispuestos a combatir el aburrimiento y pasarte todos sus superpoderes.
El primero en aterrizar ha sido .Net Core.
En “Los Imprescindibles de .Net Core“, compartimos contigo las reflexiones y valoraciones que Alberto Díaz, Adrián Díaz y Juan Carlos Martínez han hecho sobre cómo usarlo, sus escenarios, versionados, integraciones, etc.
Talk delivered at the Munich PHP User Group. An overview of the features of Elixir that may be more interesting for a PHP developer, so we focus in the platform, the cheap processes of the Erlang Virtual Machine, the philosophy of Let It Crash and how to model problems with trees of processes, and possible use cases.
Server Side Rendering of JavaScript in PHPIgnacio Martín
What is SSR, which problems does it solve, why do it in PHP, what options do we have for it, libraries that are available and tips and tricks. Practical code examples for Symfony and React.js, but the fundamental points can be taken away to use in other stacks like Vue and Laravel.
Redux is a powerful tool to manage our state. Can we use the same concepts in the server side so we can share the same store with users using our app at the same time in games or collaborative apps? We will see how to connect our Redux store to stores in the server side written in Node.js and Elixir OTP GenServers, and how to extend this perspective beyond particular implementations.
Talk presented in AgentConf'18
Supporting slides of my introductory workshop about React Native in React Alicante 2017.
Source code & Exercises: https://github.com/Limenius/workshop-react-native
Redux saga: managing your side effects. Also: generators in es6Ignacio Martín
Explanation of redux-saga for its use in React and React Native. Contains an explanation about ES6 generators, used in sagas, with emphasis in generators to manage async code.
s React.js a library or a framework? In any case, it is a new way of working that represents a revolution in the way of building web projects. It has very particular characteristics that allow us, for instance, to render React code from the server side, or to include React components from Twig tags. During this talk we will present React.js, we will explore how to take advantage of it from PHP projects and we will give answers to practical problems such as universal (isomorphical) rendering and the generation of React.js forms from Symfony forms without duplication of efforts.
Explanation of the fundamentals of Redux with additional tips and good practices. Presented in the Munich React Native Meetup, so the sample code is using React Native. Additional code: https://github.com/nacmartin/ReduxIntro
Keeping the frontend under control with Symfony and WebpackIgnacio Martín
Webpack tutorial with tips for Symfony users. Topics covered include: current frontend trends, setup, loaders, dev tools, optimization in production, bundle splitting and tips and tricks for using webpack with existing projects.
Symfony Munich Meetup 2016.
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Ignacio Martín
Introducción a React.js + técnicas y conceptos útiles, como aplicaciones universales (isomórficas) o cómo usar json schema para facilitarnos la vida al trabajar con formularios.
Talk presented at Codemotion 2015.
Although the Request/Response pattern has allowed to build applications that were inconceivable when HTTP was invented, there is an increasing demand of solutions that require to push information to browsers or mobile clients as soon as it is available, using technologies like WebSockets. This has applications in messaging, notifications, games, IoT and collaborative apps, among others.
In this talk we will present the solutions available like socket.io, Faye, Pusher, PubNub or Carotene, how to integrate such services with existent or new codebases, its advantages, the challenges we will find and how to succeed bringing realtime communications to the table.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
3. Programo en Limenius
Casi todos los proyectos
necesitan una API
Hacemos aplicaciones a medida
con Symfony y React
JWT es una buena herramienta
para asegurarlas
13. Problemas con Cookies
Problemas con CORS
Implementación no natural en algunos clientes
Hay que protegerse contra CSRF
Requiere una gestión de sesión y pensar en cómo escalar
Mantienen un estado (sesión)
14. Estado en REST
[…] communication must be stateless in nature, […], such that
each request from client to server must contain all of the
information necessary to understand the request, and
cannot take advantage of any stored context on the
server. Session state is therefore kept entirely on the client.
15. Cómo siempre, hay razones
Requiere una gestión de sesión, y pensar en cómo escalar
¿Qué hacer con un balanceador de carga?
¿Dónde guardar las sesiones?
23. JWT solo es un formato de tokens
Pero muchas veces decimos “usar JWT”
Para referirnos a una forma de trabajar con ellos
https://www.flickr.com/photos/tokencompany/8073379662
52. Registered claims
jti
iss
aud
sub
iat
exp
nbf
Id del token: String
Issuer (emisor): StringOrUri
Audiencia: StringOrUri
Subject (tema): StringOrUri
Cuándo se creó: NumericDate
Cuándo expira: NumericDate
Tiempo hasta válidez: NumericDate
94. Eventos
JWT_CREATED: Añadir/quitar datos a claims.
JWT_DECODED: Validaciones extra.
JWT_AUTHENTICATED: Añadir datos al token de Symfony.
AUTHENTICATION_FAILURE
JWT_INVALID
JWT_NOT_FOUND
JWT_EXPIRED
}Cambiar respuestas.
AUTHENTICATION_SUCCESS
95. Añadir/quitar datos a payload
class JWTCreatedListener
{
public function onJWTCreated(JWTCreatedEvent $event)
{
$payload = $event->getData();
$user = $event->getUser();
if ($user->canOrder()) {
$payload['aud'] = ‘pedidos';
}
$event->setData($payload);
}
}
96. Comprobaciones extra
class JWTDecodedListener
{
public function onJWTDecoded(JWTDecodedEvent $event)
{
$payload = $event->getPayload();
if (!isset($payload['aud'])
|| $payload['aud'] !== 'pedidos') {
$event->markAsInvalid();
}
}
}
97. Añadir atributo API a Token Sf
class JWTAuthenticatedListener
{
public function onJWTAuthenticated(JWTAuthenticatedEvent $event)
{
$token = $event->getToken();
$token->setAttribute('api', true);
}
}
public function pagesAction(Request $request)
{
if ($this->get(‘security.token_storage')
->getToken()
->getAttribute(‘api')) {
return new JsonResponse('hola usuario de api');
}
}
98. ¿Qué pasa si quiero…?
Tener diferentes estrategias en distintos firewalls
Hacer algo muy particular
114. La interfaz GuardAuthenticator
interface GuardAuthenticatorInterface
{
public function getCredentials(Request $request);
public function getUser($credentials, UserProviderInterface $userProvider);
public function checkCredentials($credentials, UserInterface $user);
public function createAuthenticatedToken(UserInterface $user, $providerKey);
public function onAuthenticationFailure(Request $request,AuthenticationException $exception);
public function onAuthenticationSuccess(Request $request,TokenInterface $token, $providerKey);
public function supportsRememberMe();
}