¿Cómo mantienen ocultas las empresas cuando están en desarrollo?

9

Soy nuevo en esto y también soy un nuevo desarrollador PHP de 19 años que acaba de ser contratado, así que no estoy seguro de cómo funciona. Muchas empresas al desarrollar sus sitios web mantienen sus sitios ocultos de ser indexados. ¿Cuáles son algunas formas en que html5 / css y luego el trabajo php / mysql está oculto para los motores de búsqueda? Si no me equivoco, estas son las técnicas:

  1. Desarrollo sin conexión: uso de almacenamiento local para renderizar html / css; no estoy seguro de cómo PHP / mysql funcionaría con eso.

  2. Usando .htaccess para evitar el acceso

  3. Usando VPN para evitar el acceso.

ariel
fuente
1
La mejor solución, cuando sea posible, siempre es tener un servidor de prueba completamente idéntico al servidor de producción. E incluso en este caso puede haber sorpresas inesperadas ...
Avio
Si desea realizar un desarrollo completo de php local, eche un vistazo a easyphp.org , es un instalador simple que hará que Apache Web Server, MySQL db y PHP se instalen y confi guren en su escritorio de Windows.
Alan Barber

Respuestas:

20

La mejor práctica es tener una aproximación de la pila de producción en su máquina de desarrollador local. Esto generalmente incluye la base de datos, el servidor web y su código personalizado. Haz todo tu desarrollo allí. Nunca edite código en un servidor de producción.

Cuando las partes interesadas de su negocio estén listas para que la funcionalidad se active, envíe su código desde su máquina local al servidor de producción. Puede usar un servidor de prueba para que las partes interesadas internas puedan obtener una vista previa de sus cambios antes de que se active.

Debe asegurarse de utilizar un sistema de control de versiones para administrar su código. Git y Mercurial son opciones sólidas.

Greg
fuente
Hola Greg, ¿hay algún enlace al que puedas señalarme que me muestre cómo hacer estas cosas? toda la codificación que conozco es de aprenderlo yo mismo, así que la primera vez que trabajo en una empresa dijeron que será un ambiente de aprendizaje para mí y están de acuerdo con eso, pero quiero entrar con el mayor conocimiento posible. Realmente lo agradecería.
ariel
Este patrón se denomina "espacio de trabajo privado". El sitio informit.com/articles/article.aspx?p=30350 parece tener una visión general razonable.
Greg
Además, probablemente nunca encontrarás una receta exacta para tu situación. Debe poder identificar cada uno de los subsistemas en su entorno de producción y encontrar ayuda para la instalación para obtenerlos en su estación de trabajo local.
Greg
Y mientras lo hace, ¡la fuente también controla su base de datos!
HLGEM
En uno de mis trabajos anteriores, nuestro proceso de compilación automatizado aplicó todo el historial de migraciones de datos a un conjunto de datos de oro (un subconjunto de datos de producción) aplicando una secuencia de archivos SQL en sucesión.
Greg
6

Simplemente pedirles a las arañas de búsqueda que no indexen su sitio es una defensa muy débil, si es que la hay.

La forma habitual de hacerlo es la siguiente:

  • Mientras está en desarrollo, ejecuta el código en una máquina de desarrollo a la que no se puede acceder desde fuera de su LAN, o posiblemente ni siquiera desde cualquier lugar excepto la misma máquina (localhost). Esto generalmente se hace con un firewall, ya sea a nivel de red (un firewall LAN real; si su empresa vale algo, usted tiene uno) o localmente (un firewall 'personal'). Además, puede configurar su servidor apache local para que solo acepte conexiones de localhost (127.0.0.1).
  • La versión de aceptación (es decir, una versión de espacio aislado para que el cliente pruebe y pruebe) se ejecuta en una máquina que es idéntica al entorno de producción (tanto como sea posible; algunos detalles de configuración deberán ser diferentes); limita el acceso de forma similar a como lo hizo con el entorno de desarrollo, excepto que también otorga acceso a la red del cliente. Si esto no es posible (por ejemplo, porque el cliente no tiene su propia IP dedicada, o porque no pueden molestarse en averiguar cuál es), puede considerar agregar autenticación HTTP y darle una contraseña al cliente; Esto se puede hacer en el nivel del servidor web (es decir, Apache), con una advertencia: la autenticación HTTP se realiza sin cifrar, por lo que si la versión de aceptación contiene algo remotamente confidencial,

En cuanto a cómo lo haces con estas cosas: si ejecuta una distribución decente * nix, viene con un gestor de paquetes ( apt, port-install, rpm, etc.); utilícelo para instalar los componentes que necesita y lea la documentación. Pídale ayuda a un administrador de sistemas si no puede resolverlo usted mismo.

tdammers
fuente
4

Para rastreadores educados (es decir, cualquier motor de búsqueda importante), puede ofrecer un /robots.txtarchivo con:

Agente de usuario: *
No permitir: /

Por supuesto, eso es solo un consejo y no impedirá que las personas visiten el sitio si conocen la URL. Un mejor enfoque es colocar el sitio detrás de un inicio de sesión de algún tipo si necesita acceso a Internet en general, o simplemente alojar el servidor en un servidor web interno.

Greg Hewgill
fuente
1
Esta y la respuesta de Greg (... la otra Greg) resumen todo perfectamente.
Anónimo
1

En el espíritu de "entrar con más conocimiento":

Se puede ocultar Html / Css robots.txt, pero asegúrese de cambiar esos archivos cuando empuje el sitio a producción. robots.txtno impide que una persona aleatoria adivine el sitio web de desarrollo (si es visible para todo el mundo).

.htaccesspodría usarse para agregar un combo de nombre de usuario / contraseña a cualquier sitio que se esté desarrollando.

Aquí hay un ejemplo de cómo podría usar una VPN:

Todas las solicitudes en la VPN pasan por un firewall. Ese cortafuegos (que ejecuta algún software como pfSense ) examina las solicitudes del sitio web y realiza alguna redirección basada en la URL. Por ejemplo, la url http: //example.com.staging dirigirá a la versión de example.com en su servidor de ensayo, y la url de http: //example.com.development dirigirá a la versión de example.com en tu servidor de desarrollo.

Como todo esto está en una VPN privada, ninguno de estos sitios web es accesible desde el mundo exterior.

Además, para aclarar algunas cosas con su pregunta original. El trabajo php / mysql se está haciendo en el lado del servidor , por lo que los rastreadores web, navegadores, etc. nunca ven el código; solo ven la salida del código (es decir, si ha configurado su servidor correctamente y no está procesando) archivos .php como texto).

Estoy seguro de que leí mal su pregunta, pero su uso de la frase "almacenamiento local" me pareció ambiguo. LocalStorage también puede referirse a una tecnología HTML5 para almacenar activos localmente en la máquina de un cliente. No se utiliza para representar html / css, solo es un almacén de datos (el navegador representa el html / css). El almacenamiento local generalmente no tiene nada que ver con cómo las empresas mantienen ocultos los sitios web en el desarrollo.

Los archivos PHP se pueden ver localmente si está ejecutando un servidor web en su máquina y los archivos están en los directorios apropiados (generalmente el htdocsdirectorio si ejecuta Apache).

CamelBlues
fuente
0

Los motores de búsqueda funcionan con arañas : scripts que rastrean la web de un enlace a otro. Si su sitio es nuevo y no existen enlaces a él desde otro lugar, nada lo encontrará. Eso, además de un archivo robots.txt configurado para evitar que cualquier araña que de alguna manera deambule por su sitio lo examine, debería ser suficiente.

Mason Wheeler
fuente