Código fuente del protocolo Socks
Struts:
La estructura del marco correspondiente es como se muestra en la figura: Struts proporciona los componentes correspondientes para modelos, vistas y controladores.
En la figura anterior, ActionServlet, el controlador central de Struts, es responsable de interceptar las solicitudes de los usuarios.
Acción, esta clase suele ser proporcionada por el usuario. El controlador es responsable de recibir la solicitud del ActionServlet, llamar al método de lógica de negocios del modelo de acuerdo con la solicitud para procesar la solicitud y devolver el resultado del procesamiento a la página JSP para su visualización.
Partes del modelo
Compuesto por ActionForm y JavaBean, donde ActionForm se utiliza para encapsular los parámetros de solicitud del usuario y encapsularlos en un objeto ActionForm, que ActionServlet reenvía a Action y Action. se basa en la solicitud en ActionFrom Los parámetros manejan la solicitud del usuario.
JavaBean encapsula la lógica empresarial subyacente, incluido el acceso a la base de datos.
Ver parte
Esta parte se implementa usando JSP.
Struts proporciona una rica biblioteca de etiquetas, que puede reducir el uso de scripts. Las bibliotecas de etiquetas personalizadas pueden lograr una interacción efectiva con el modelo y agregar funciones prácticas. Corresponde a la parte JSP de la imagen de arriba.
Componente del controlador
El componente del controlador consta de dos partes: el controlador central del sistema y el controlador de lógica empresarial.
El controlador central del sistema corresponde al ActionServlet que se muestra arriba. El controlador lo proporciona el marco Struts y hereda la clase HttpServlet, por lo que se puede configurar como un servlet etiquetado. El controlador es responsable de interceptar todas las solicitudes HTTP y luego decidir si transmitirlas al controlador de lógica de negocios en función de la solicitud del usuario.
El controlador de lógica de negocios responsable de procesar las solicitudes de los usuarios no tiene la capacidad de procesamiento por sí mismo, pero llama al modelo para completar el procesamiento. Correspondiente a la parte de acción.
[Editar este párrafo] Spring
Spring es un framework de código abierto creado por Rod Johnson. Fue creado para resolver las complejidades del desarrollo de aplicaciones empresariales. Spring utiliza JavaBeans básicos para lograr cosas que antes solo eran posibles con EJB. Sin embargo, el uso de Spring no se limita al desarrollo del lado del servidor. Desde la perspectiva de la simplicidad, la capacidad de prueba y el acoplamiento flexible, cualquier aplicación Java puede beneficiarse de Spring.
◆Propósito: Resolver la complejidad del desarrollo de aplicaciones empresariales.
◆Función: utilice JavaBean básico en lugar de EJB para proporcionar más funciones de aplicaciones empresariales.
◆Alcance: cualquier aplicación Java
En pocas palabras, Spring es un marco de contenedor liviano con inversión de control (IoC) y orientación de aspecto (AOP).
◆Ligero: Spring es liviano en tamaño y costo. El marco Spring completo se puede publicar en un archivo JAR con un tamaño de solo 1 MB. La sobrecarga de procesamiento requerida por Spring es insignificante. Además, Spring no es intrusivo: normalmente, los objetos en una aplicación Spring no dependen de las clases específicas de Spring.
◆Inversión de control: Spring promueve un acoplamiento flojo a través de una tecnología llamada inversión de control (IoC). Al aplicar IoC, otros objetos de los que depende un objeto se pasarán pasivamente, en lugar de ser creados por el objeto mismo o buscar objetos dependientes. Puede pensar en IoC como el antónimo de JNDI: en lugar de que el objeto busque dependencias del contenedor, el contenedor pasa activamente dependencias al objeto durante la inicialización sin esperar la solicitud del objeto.
◆Orientado a aspectos: Spring proporciona un amplio soporte para la programación orientada a aspectos, lo que permite un desarrollo coherente al separar la lógica empresarial de la aplicación de los servicios a nivel del sistema, como la auditoría y la gestión de transacciones. Los objetos de aplicación hacen lo que se supone que deben hacer (lógica empresarial completa) y nada más. No son responsables (ni siquiera conocen) otros problemas a nivel del sistema, como el registro o el soporte de transacciones.
◆ Container-Spring contiene y gestiona la configuración y el ciclo de vida de los objetos de la aplicación. En este sentido, es un contenedor. Puede configurar cómo se crea cada uno de sus beans (basándose en prototipos configurables, sus beans pueden crear una única instancia o generar una nueva instancia cada vez que sea necesario) y cómo se relacionan entre sí. Sin embargo, Spring no debe confundirse con los tradicionales contenedores EJB pesados, que suelen ser grandes, difíciles de manejar y difíciles de usar.
◆Framework-Spring puede combinar configuraciones de componentes simples en aplicaciones complejas. En Spring, los objetos de la aplicación se agrupan de forma declarativa, generalmente en un archivo XML. Spring también proporciona muchas funciones básicas (gestión de transacciones, integración de marcos de persistencia, etc.), y el desarrollo de la lógica de la aplicación queda en sus manos.
Todas estas características de Spring le permiten escribir código más claro, más fácil de administrar y de probar. También brindan soporte básico para varios módulos en Spring.
[Editar este párrafo] Hibernate
Hibernate es un marco de mapeo relacional de objetos de código abierto que encapsula JDBC de una manera muy liviana para que los programadores de Java puedan utilizar el pensamiento de programación de objetos para manipular el base de datos a voluntad. Hibernate se puede utilizar en cualquier situación en la que se utilice JDBC, no sólo en programas cliente Java sino también en aplicaciones web Servlet/JSP. Lo más revolucionario es que en la arquitectura J2EE que usa EJB, Hibernate puede reemplazar a CMP para completar la tarea de persistencia de datos.
Hibernate tiene cinco interfaces principales: Session, SessionFactory, Transaction, Query y Configuration. Estas cinco interfaces principales se utilizarán en cualquier desarrollo. A través de estas interfaces, no sólo se puede acceder a objetos persistentes, sino que también se pueden controlar las transacciones. Las cinco interfaces principales se presentan a continuación.
Interfaz de sesión: la interfaz de sesión es responsable de realizar operaciones CRUD en objetos persistentes (la tarea de CRUD es comunicarse con la base de datos, y la base de datos contiene muchas declaraciones SQL comunes). Sin embargo, cabe señalar que los objetos de sesión son seguros para subprocesos. Al mismo tiempo, la sesión de Hibernate es diferente de HttpSession en las aplicaciones JSP. La palabra sesión utilizada aquí en realidad se refiere a la sesión en Hibernate. De ahora en adelante, el objeto HttpSesion se llamará sesión del usuario.
Interfaz SessionFactory: La interfaz Sessionfactory es responsable de inicializar Hibernate. Actúa como proxy de la fuente de almacenamiento de datos y es responsable de crear objetos de sesión. Aquí se utiliza el patrón de fábrica. Cabe señalar que SessionFactory no es liviano porque, en general, un proyecto generalmente solo necesita un SessionFactory. Cuando necesite operar varias bases de datos, puede especificar una SessionFactory para cada base de datos.
Interfaz de configuración: La interfaz de configuración es responsable de configurar e iniciar Hibernate y crear objetos SessionFactory. Durante el inicio de Hibernate, una instancia de la clase Configuración primero localiza la ubicación del documento de mapeo, lee la configuración y luego crea un objeto SessionFactory.
Interfaz de transacciones: la interfaz de transacciones es responsable de las operaciones relacionadas con las transacciones.
Es opcional, los desarrolladores también pueden diseñar y escribir su propio código de transacción subyacente.
Consulta e interfaz estándar: La consulta y la interfaz estándar son responsables de ejecutar diversas consultas a la base de datos. Puede expresarse en lenguaje HQL o declaraciones SQL.
SSH: Protocolo Secure Shell
[Editar este párrafo] 1. Introducción a SSH
¿Qué es Song Seung-heon?
Los programas de servicios de red tradicionales, como ftp, pop, telnet, etc., son inherentemente inseguros porque transmiten contraseñas y datos en texto claro en la red, que pueden ser fácilmente interceptados por personas con motivos ocultos. Contraseñas y datos. Además, los métodos de verificación de seguridad de estos programas de servicio también tienen sus debilidades, es decir, son propensos a ataques de "intermediario". El modo de ataque llamado "intermediario" consiste en que el "intermediario" se hace pasar por un servidor real para recibir los datos que usted transmite al servidor y luego se hace pasar por usted para transmitir los datos al servidor real. servidor. Pueden surgir problemas graves cuando la transmisión de datos entre el servidor y usted es alterada por un "intermediario".
El nombre completo en inglés de SSH es Secure Shell. Al utilizar SSH, todos los datos transmitidos se pueden cifrar, lo que imposibilita los ataques de "intermediario" y evita la suplantación de DNS e IP. Una ventaja adicional es que los datos transmitidos se comprimen, por lo que se puede acelerar la velocidad de transferencia. SSH tiene muchas funciones. No sólo puede reemplazar a telnet, sino que también proporciona un "canal" seguro para ftp, pop e incluso ppp.
¿Cómo funciona la verificación de seguridad SSH?
Desde la perspectiva del cliente, SSH proporciona dos niveles de verificación de seguridad.
El primer nivel (autenticación de seguridad basada en contraseña) le permite iniciar sesión en el host remoto siempre que conozca su cuenta y contraseña. Todos los datos transmitidos se cifrarán, pero no hay garantía de que el servidor al que se está conectando sea el servidor al que se está conectando. Puede haber otros servidores que se hacen pasar por servidores reales, es decir, que están siendo atacados por ataques de "intermediario".
El segundo nivel (verificación de seguridad basada en claves) se basa en claves, es decir, debes crear un par de claves para ti y colocar la clave pública en el servidor al que necesitas acceder. Si desea conectarse a un servidor SSH, el software del cliente enviará una solicitud al servidor para autenticarse de forma segura con su clave. Cuando el servidor recibe la solicitud, primero busca su clave pública en el directorio de inicio del servidor y luego la compara con la clave pública que envió. Si las dos claves coinciden, el servidor cifra el "desafío" con la clave pública y la envía al software cliente. Después de recibir el "desafío", el software del cliente puede descifrarlo con su clave privada y enviarlo al servidor.
De esta forma, deberás conocer la contraseña de tu clave. Sin embargo, en comparación con el primer nivel, el segundo nivel no requiere que la contraseña se transmita a través de la red.
El segundo nivel no sólo cifra todos los datos transmitidos, sino que también imposibilita los ataques de "hombre en el medio" (porque no tiene su clave privada). Pero todo el proceso de inicio de sesión puede tardar hasta 10 segundos.
-
(SSH: Secure Shell Protocol)
Secure Shell Protocol (SSH) es un protocolo que proporciona inicio de sesión remoto seguro y otros protocolos para servicios de red seguros . Secure Shell, también conocido como SSH, fue originalmente un programa en sistemas UNIX y rápidamente se expandió a otras plataformas operativas. SSH es una buena aplicación que puede compensar las vulnerabilidades de la red cuando se usa correctamente. Además, hay varias razones por las que el cliente S H es más genial y es adecuado para múltiples plataformas. Casi todas las plataformas UNIX, incluidas HP-UX, Linux, AIX, Solaris, Digital UNIX, Linux, SCO y otras, pueden ejecutar SSH, y ya hay algunos clientes (algunos de los cuales son versiones beta) que pueden ejecutarse en el exterior. Plataformas operativas UNIX, incluidas OS/2, VMS, BeOS, Java, Windows 95/98 y Windows NT.
De esta manera, puede ejecutar programas cliente SSH en casi cualquier plataforma. Gratis para uso no comercial. El código fuente está disponible para muchas versiones de SSH y se puede obtener de forma gratuita siempre que no se utilice con fines comerciales. Además, la versión UNIX también proporciona código fuente, lo que significa que cualquiera puede modificarlo. Pero si optas por utilizarlo con fines comerciales, sin importar qué versión de S H uses, debes confirmar que te has registrado y obtenido los permisos correspondientes. La mayoría de los demonios y clientes SSH tienen algunas restricciones de registro. La única versión de la Licencia pública general (GPL) SSH es lsh, que actualmente se encuentra en versión beta. La transmisión de contraseñas a través de Internet es segura y confiable. Esta es una de las ventajas reconocidas de SSH. Si nos fijamos en el método de acceso a un ISP (proveedor de servicios de Internet) o a una universidad, generalmente se utilizan procesos de cliente de correo Telnet o POP. Por lo tanto, cada vez que desea acceder a su cuenta, la contraseña que ingresa se envía sin cifrar (es decir, no está protegida y es directamente legible), lo que le da a un atacante la oportunidad de robar su cuenta. — —En última instancia, usted es responsable de su cuenta. comportamiento. Aplicaciones de soporte. Debido a que el código fuente de SSH es abierto, es ampliamente reconocido en el mundo UNIX. Li en UX, su código fuente también es abierto y el público puede obtenerlo de forma gratuita, y también ha recibido un reconocimiento similar. Esto permite a cualquier desarrollador (o cualquier persona) mejorar el rendimiento o incluso agregar funcionalidad mediante parches o correcciones de errores. Esto también significa que obtener e instalar la primera parte de SSH significa que su rendimiento se puede mejorar continuamente sin soporte técnico directo del creador original. Reemplazar aplicaciones remotas inseguras. SSH está destinado a reemplazar la versión Berkeley del conjunto de comandos r; también hereda una sintaxis similar. Por lo tanto, los usuarios no notarán la diferencia entre usar los conjuntos de comandos SSH y R. También puedes hacer algunas cosas interesantes con él. Al utilizar SSH, no tiene que preocuparse de que lo escuchen cuando envía información a través de una red no segura. También puede crear una red privada virtual (VPN) utilizando un túnel P2P y el modo Telnet. SSH también admite otros métodos de autenticación, como Kerberos y tarjetas de identificación seguras.
Sin embargo, debido a las restricciones sobre los derechos de autor y los algoritmos de cifrado, muchas personas ahora están recurriendo a OpenSSH. OpenSSH es una alternativa gratuita a SSH. Se puede esperar que cada vez más personas lo utilicen para reemplazar SSH en el futuro.
SSH consta de software del lado del cliente y del servidor, y hay dos versiones incompatibles: 1.x y 2.x. Los programas cliente que usan SSH 2.x no pueden conectarse a SSH 1.x. El programa de servicio OpenSSH. 2.x admite tanto SSH 1.x como 2.x.
SSH consta principalmente de tres partes:
El protocolo de capa de transporte [SSH-TRANS] proporciona autenticación, confidencialidad e integridad del servidor. Además, a veces proporciona capacidades de compresión. SSH-TRANS normalmente se ejecuta a través de una conexión TCP/IP, pero también se puede utilizar para otros flujos de datos confiables. SSH-TRANS proporciona una sólida tecnología de cifrado, autenticación de host de contraseñas y protección de integridad. La autenticación en este protocolo se basa en el host y el protocolo no realiza la autenticación del usuario. Se pueden diseñar protocolos de autenticación de usuarios de nivel superior sobre este protocolo.
El protocolo de autenticación de usuarios [SSH-USERAUTH] se utiliza para proporcionar funciones de autenticación de usuarios del cliente al servidor. Se ejecuta en el protocolo de capa de transporte SSH-TRANS. Cuando...
Después de que se inicia SSH-USERAUTH, recibe el identificador de sesión (del hash de intercambio H en el primer intercambio de claves) del protocolo de capa inferior. El identificador de sesión identifica de forma única la sesión y está etiquetado adecuadamente para demostrar la propiedad de la clave privada. SSH-USERAUTH también necesita saber si el protocolo subyacente proporciona protección de confidencialidad.
El protocolo de conexión [SSH-CONNECT] divide múltiples túneles cifrados en canales lógicos. Se ejecuta en el protocolo de autenticación de usuario.
Proporciona sesiones de inicio de sesión interactivas, ejecución remota de comandos, conexiones TCP/IP reenviadas y conexiones X11 reenviadas.
Una vez que se establece una conexión de capa de transporte segura, el cliente envía una solicitud de servicio. Cuando se completa la autenticación del usuario, se envía una segunda solicitud de servicio. Esto permite que los protocolos recién definidos coexistan con los protocolos mencionados anteriormente. El protocolo de conexión proporciona una amplia gama de canales y existen métodos estándar para establecer sesiones interactivas seguras y reenvío ("tunelización") de puertos TCP/IP propietarios y conexiones X11.
Al utilizar SSH, todos los datos transmitidos se pueden cifrar, lo que imposibilita la realización de ataques "man-in-the-middle" y también previene el fraude de DNS y el fraude de IP. Usar SSH tiene el beneficio adicional de que los datos transferidos se comprimen, acelerando así la transferencia. SSH tiene muchas funciones. No sólo puede reemplazar a Telnet, sino que también proporciona un "canal" seguro para FTP, PoP e incluso PPP.
SSH se divide en dos partes: la parte del cliente y la parte del servidor.
El servidor es un demonio que se ejecuta en segundo plano y responde a las solicitudes de conexión de los clientes. El servidor es generalmente un proceso sshd que proporciona procesamiento de conexión remota, que generalmente incluye autenticación de clave pública, intercambio de claves, cifrado de clave simétrica y conexiones inseguras.
El cliente incluye el programa ssh y otras aplicaciones, como scp (copia remota), slogin (inicio de sesión remoto), sftp (transferencia segura de archivos).
Su mecanismo de trabajo es aproximadamente el siguiente: el cliente local envía una solicitud de conexión al servidor remoto, el servidor verifica el paquete de la aplicación y la dirección IP y envía la clave al cliente SSH, y el cliente local envía el servidor de respaldo de claves, desde el cual se establece la conexión. De lo que acabo de hablar es del proceso general de conexión SSH. Todavía existen algunas diferencias en los protocolos de conexión entre SSH 1.x y SSH 2.x.
SSH está diseñado para funcionar de forma independiente sin el uso de un superservidor (inetd). Aunque SSH se puede ejecutar a través de tcpd en inetd, es completamente innecesario. Después de que se inicia el servidor SSH, sshd se ejecuta y escucha en el puerto predeterminado 22 (puede usar # ps -waux | grep sshd para verificar si sshd ya se está ejecutando correctamente). Si SSH no se inicia a través de inetd, SSH esperará la solicitud de conexión. Cuando llega una solicitud, el demonio SSH generará un proceso hijo que manejará la conexión.
SSH: Un nuevo modelo de desarrollo de software MVC. SSH (Struts, Spring, Hibernate) Struts controla el proceso, Spring ejecuta el proceso de negocio e Hibernate encapsula las operaciones de la base de datos. ¡Este nuevo modelo de desarrollo hace que nuestro desarrollo sea más conveniente, más rápido y más claro!
[Editar este párrafo] Aplicación alternativa a ssh: ssh como proxy calcetines5.
1. Descargue MyEntunnel
2. Descargue PuTTY y extráigalo al directorio del programa MyEntunnel.
3. Ejecute MyEntunnel.exe. Configuración: complete la dirección SSHHFTP o IP en SSHHServer, complete el nombre de usuario y la contraseña y haga clic en Conectar. El pequeño candado en la barra del sistema se vuelve verde para indicar una conexión exitosa.
4. Configurar el navegador. IE no admite el proxy de calcetines, así que use Firefox. Abra la página de configuración de proxy de Firefox y complete la configuración original del puerto 127.0.0.1 en el host de calcetines. El valor predeterminado es 7070.
Cómo ejecutar comandos SSH en un entorno de host Win
Para los usuarios de host Win, pueden descargar la herramienta de administración de shell PuTTY.
Algunos comandos de shell comunes son los siguientes:
Ruta de conversión de Cd [nombre del directorio]
Cd..regresar al directorio principal
Ls Muestra todos los archivos en el directorio actual.
Rm[-r]-f[][nombre de archivo] elimina un archivo. Agregar [-r] puede eliminar todos los subarchivos del archivo. Por ejemplo, rm -rf [abc] elimina el. carpeta abc y todos los archivos bajo esa carpeta.
tar-xzf[Descomprima el paquete comprimido descargado]
Descomprima [nombre del archivo] para descomprimir el archivo
Cp -rpf. A/*B copia todos los archivos de la carpeta A a su directorio principal B.
Wget (descargar archivos de forma remota al servidor)
Escalabilidad del protocolo SSH
En el marco del protocolo SSH se diseña una gran cantidad de capacidades redundantes escalables, como como algoritmos definidos por el usuario, reglas clave definidas por el cliente, protocolos avanzados de aplicación de funciones extendidas, etc. La mayoría de estas extensiones siguen las regulaciones pertinentes de la IANA, especialmente en partes importantes, como las reglas de nomenclatura y la codificación de mensajes. [1]