¿Cómo haría para bloquear una aplicación web en línea y hacer que los usuarios desbloqueen la aplicación con una contraseña, clave u otros medios?

IP es una forma muy pobre de hacerlo: si eres móvil, cambia, y falsificar una dirección IP es increíblemente fácil de hacer.

El usuario crea una cuenta, selecciona la contraseña
detalles almacenados en la base de datos, la contraseña está encriptada.
El usuario inicia sesión, si el nombre de usuario / contraseña son válidos, el usuario ingresa (no use el nombre de usuario, use el correo electrónico: ¡todos ya tienen una dirección de correo electrónico única, y pueden recordar eso!)
la cookie se establece para la duración de la sesión, o para la semana / mes / etc. como mejor le parezca.

Esta es una base sobre la vista. Si estás escribiendo una aplicación bancaria, ¡querrás hacer MUCHO más que esto!

Además, puede considerar el uso de OAuth, hacer que las personas inicien sesión a través de su cuenta de Facebook, lo que facilita al usuario final, ¡siempre y cuando confíen en usted!