no podra ingresar nada que no sea alfanumerico solo letras y numeros , tambien a la hora del registro deberas verificar lo mismo que sea alfanumerico y avisar que solo puede contener useranme y password letras y numeros , si deseas que puedan insertar otros caracteres deberas verificarlo.
te lo he tocado un poco a ver que te parece
Código PHP:
Ver original<?php
require_once('config.php');
if(isset($_POST['ingresar']) and
isset($_POST['username'] and
isset($_POST['password'])) {
{
$query = mysqli_query($conexion,"SELECT * FROM usuarios WHERE nick='".$username."' and pass='".$password."'");
{
$_SESSION['nivel'] = $datos['nivel'];
$_SESSION['usuario'] = $datos['nick'];
echo '<script language="JavaScript">window.location.href = "index.php";</script>';
}
else
{
echo 'Usuario y contraseña incorrectos';
echo '<script language="JavaScript">window.location.href = "index.html";</script>';
}
}
else
{
echo 'Ingresa un usuario y contraseña validos';
}
}
?>
ahora solo te faltaria hasear las pass y en el registro especificar que sea mayor de 10 caracteres para aumentar la seguridad de la contraseña , y preparar la consulta y yo creo que estaria muy seguro
respecto a .htaccess y directorios , yo no se tu estructura pero a lo que se refiere es a una estructura mas o menos asi
index.php
dir / sistema
dir/ public
restringimos el acceso a sistema y a todos sus directorios que no sean accesible desde la url , en sistema tendriamos todos los scripts controladores ,clases funciones etc....y en public todo el contenido publico , asi separamos el sistema de la aplicacion, y la aplicacion se conecta con el sistema para usar sus funciones