Aquí están algunas cosas para la seguridad del sitio web, especialmente las que deben seguir tanto los principiantes como los desarrolladores web avanzados.
#15 Steps To Secure Your Website
1: Prevenir hotlinking de imágenes (IMP)
imagen hotlinking es el proceso de utilización de otra persona URL de la imagen en nuestra página web y el uso de su ancho de banda. Para evitar este misterio, podemos evitar el acceso al servidor externo agregando la siguiente línea en el código.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
2: Prevenir CSRF (Cross Site Request Falsificación) ataca
Con el fin de prevenir los ataques CSRF en su GET y POST peticiones para el envío del formulario, puede utilizar las siguientes técnicas 2.
El primero en incluir un token aleatorio con cada solicitud, esta es una cadena única que se genera para cada sesión.
El segundo método es usar nombre aleatorio para cada campo de formulario.
3: Prevención de acceso a directorios/Inhabilitar la indexación
Añadir la siguiente línea a su archivo .htaccess.
Options -Indexes
4: Asegure su privado y CMS Entrar con restricciones de IP
restricción de IP es una forma poco avanzado método pero eficaz para detener las personas no autorizadas a acceder a un área particular de su sitio web. Aquí hay un código htaccess de ejemplo para restringir el acceso a una ubicación en particular.
ALLOW USER BY IP
<Limit GET POST>
order deny,allow
deny from all
allow from 1.2.3.4
</Limit>
5: Proteja su archivo .htaccess
Puede escribir esto más adelante pieza de código en el archivo .htaccess que no deje que los otros tengan acceso a su archivo .htaccess.
<Files ~ “^.*.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</Files>
6: Función de regla de acceso
Mediante la adición de "_" como un prefijo para el nombre de la función, podemos evitar la función a ser llamada desde la Web públicamente. Esta es la mejor práctica cuando necesitamos acceder a alguna función específica solo a través de AJAX.
7: Cierren sus permisos de archivos y directorios
Los permisos de archivo definen quién puede hacer qué en un archivo.
"Leer" = 4: Ver los contenidos del archivo.
"Escribir" = 2: Cambie el contenido del archivo.
"Ejecutar" = 1: Ejecuta el archivo de programa o la secuencia de comandos.
8: Prevenir Cron Job para ser ejecutado desde un navegador Web
Al añadir, siguiendo la línea de código en su página, usted puede proteger su página que se accede desde un navegador web.
if(! $this->input->is_cli_request()) {
die("Only CLI Requests Allowed");
}
9: Ocultar las páginas de administración de Google rastree los
Usted no quiere que sus páginas de administración para ser indexados por los motores de búsqueda, por lo que debe utilizar el archivo ROBOTS_TXT para disuadir a los motores de búsqueda de la lista de ellos.
10: Desactivar Haga clic derecho en la página si no requiere
Desactivación de “clic derecho” como una manera de ver su sitio web el código fuente por el elemento para asegurar Contenido del sitio web para los usuarios generales inspeccionar.
11: El uso de contraseñas seguras para el CMS
práctica Keep para establecer contraseña aleatoria con sólo el carácter especial.
12: Hacer directorio admin Es difícil de adivinar
Puede suceder que los hackers pueden utilizar secuencias de comandos que escanean todos los directorios en su servidor web para los nombres de regalo como 'admin' o 'iniciar sesión', etc. y sus cosas significativa puede filtrarse
13: Cambiar el prefijo de tabla de base de
Añadir un prefijo (la mezcla del nombre del proyecto y año) que sería difícil presumir de un lado seguro.
Para ilustrar,
A) BPM Supremo => bpm14_download
B) Glickin => gk15_admin
C) TravelWorthy => tw16_user
14: Prevenir contraseña del usuario, que es tan importante como la suya
En cuanto Algoritmo de encriptación de contraseña, use el algoritmo sha1 en lugar del algoritmo tradicional Md5, que es el método más antiguo y cada vez menos seguro según las fuentes.
Referencia: http://php.net/manual/en/function.sha1.php
15: Ocultar registro de errores
Durante el modo de desarrollo, mantener el informe de errores "ALL" y una vez que vayamos cambio VIVO a "0", sin olvidar. Por aquí
Referencia: http://php.net/manual/en/function.error-reporting.php
** Punto 6. ** Inútil. Con una herramienta de proxy/red web, puede capturar solicitudes AJAX y enviarlas sin el encabezado 'HTTP_X_REQUESTED_WITH'. El prefijo '_' no hace nada. ** Punto 8. ** Esto es una copia y pega de algo que no todos tendrán. No todos tendrán el mismo método 'is_cli_request()'. ¿Puedes suministrar este método? ** Punto 10. ** Absolutamente inútil. [No deshabilite el clic derecho] (https://www.sitepoint.com/dont-disable-right-click/). ** Punto 13. ** Inútil. Si alguien puede SQLi para agarrar el 'information_schema' o incluso ejecutar' SHOW TABLES; ' –
** Punto 14. ** ¿Por qué? SHA1 es un resumen de mensaje, nunca fue una función de hash de contraseña (o de derivación de clave). Consulte ['password_hash()'] (http://php.net/manual/en/function.password-hash.php) para obtener una solución. –
# 6: es mejor tener algo que nada. # 8: Vaya, ese es el fragmento de un Framework. Por favor, no hagas caso. En el núcleo de PHP, podemos hacer coincidir el parámetro HTTP_USER_AGENT de $ _SERVER. # 10: Esto simplemente detiene la copia de su contenido web. # 13: Ver, nuevamente se trata del experto técnico avanzado. Al considerar esto, hay menos posibilidades de pérdida de datos. –