2010-08-30 17 views
13

Tengo aquí un pequeño dispositivo integrado con uClinux. Hay un servidor web Boa, que admite scripts CGI. Necesito hacer páginas dinámicas básicas. método GETC/C++ CGI en dispositivo incrustado, POST, GET, LOGIN?

Requisitos

  • para la navegación
  • método POST para las formas
  • LOGIN para la autenticación

Esta página es para http://www.cs.tut.fi/~jkorpela/forms/cgic.html Se describe cómo implementar GET y POST método .

¿Pero qué pasa con el inicio de sesión y los usuarios? ¿Es posible usar nombres de usuario y contraseñas desde Linux? ¿Tiene un ejemplo de cómo implementar la autenticación http?

¿O es mejor utilizar esta biblioteca de cgi C++? http://www.gnu.org/software/cgicc/

No tengo experiencia con eso, gracias.

+0

cgicc funciona bien. Asegúrese de tener la última versión para asegurarse de que no hereda las vulnerabilidades de desbordamiento del búfer. – Jay

Respuesta

0

También estoy ejecutando CGI en C en un dispositivo incrustado y utilizando la biblioteca de código abierto cgihtml de Eugene Eric Kim.

Hasta ahora parece funcionar bien para los métodos POST y GET. No lo he usado para autenticación.

http://www.eekim.com/software/cgihtml/index.html

0

Creo que se puede utilizar cualquiera de los parámetros de URL o cookies para almacenar la información de autenticación. Consulte el protocolo HTTP para saber cómo almacenar cookies.

0

No estoy seguro si su distribución de Linux es compatible con Perl. Recientemente desarrollé una aplicación CGI utilizando Perl y el servidor web BOA para Angstrom Embedded Linux.

puede usar el módulo perl CGI para esto.

-1

puede simplemente probar thttpd o LightHTTPd para servir este puropose, escribir un servidor web C++ personalizado es la mejor solución, si no tiene muchas funcionalidades que mirar ... puede simplemente comenzar mirando http://www.jbox.dk/downloads/webserver.c esta implementación y ampliarlo para apoyar sus necesidades personalizadas. Si no está planeando una página web dinámica de alojamiento de instalaciones en el servidor web.

Saludos, Mike

+0

La pregunta dice claramente que se necesitan páginas dinámicas. –

0

Para la autenticación, tendrá que mantener una "tabla de estado de sesión" en el servidor. Es una estructura de datos estática, archivo o tabla db que realiza un seguimiento de los identificadores de sesión autenticados actualmente, los identificadores de usuario a los que asignan y los permisos. Por razones de seguridad, probablemente también sea una buena idea almacenar la dirección IP y el agente de usuario en la tabla de estado (cuando Slashdot le pregunta si su sesión nunca se mueve, se mueve dentro de una subred o lo sigue a todas partes, es porque invalidan cualquier sesión eso viene desde fuera de su rango de IP a menos que les diga específicamente que está bien).

Sus programas CGI pueden referirse a la tabla de estado de la sesión para ver si una solicitud determinada proviene de un usuario conectado, quién es ese usuario y qué permisos tienen.

Por razones de seguridad, debe almacenar la identificación de la sesión del lado del cliente en una cookie en lugar de en una cadena GET. Asegúrate de que tus identificadores de sesión sean aleatorios lo mejor que puedas.

EDITAR: su mejor apuesta para la tabla de estado de la sesión sería MySQL/PostgreSQL si la está usando, o tal vez IPC con un pequeño programa C que escriba específicamente para ese fin, utilizando una función doméstica incorporada estructura de datos crecida o SQLite

0

Esto muestra la autenticación resumida, pero sería mejor utilizar una biblioteca para garantizar que se maneje correctamente en todos los casos. Observe cómo usa GET aunque POST funcionaría igual de bien.

http://en.wikipedia.org/wiki/Digest_access_authentication

Este tipo de autenticación tiene el navegador aparecerá una pequeña ventana de detalles en lugar de ser un formulario HTML. No está claro qué tipo de mecanismo de inicio de sesión está buscando.

-1

descarga calamar servidor de caché, tiene un buen cgi seguro y rápido con c.