2011-04-02 14 views
10

Creo que alguien está robando mi contenido usando un iframe. Mi sitio web es un foro y un usuario me lo acaba de informar.Prevenir iframe stealing

¿Cómo puedo encontrar su sitio web mediante programación (php, JavaScript, jQuery, HTML) si son otros los que hacen esto?

¿Esto está permitido en Internet para que lo hagan y puedo tomar medidas?

Respuesta

26

con JavaScript que puede hacer

if(window.top==window){ 
//not inside iframe 
} else { 
    if(parent.parent.someFunction){ 
     parent.parent.someFunction(); 
    } else { 
     alert("framing is not allowed") 
    } 
} 

O

if (window.top !== window.self) window.top.location.replace(window.self.location.href); 

Algunos navegadores modernos también soportan la cabecera X-FRAME-OPTIONS, que puede tener dos valores:

* DENY – prevents the page from being rendered if it is contained in a frame 
* SAMEORIGIN – same as above, unless the page belongs to the same domain as the top-level frameset holder. 

Navegadores compatibles con el encabezado:

* IE8 and IE9 
* Opera 10.50 
* Safari 4 
* Chrome 4.1.249.1042 
* Firefox with NoScript 
4

Si puede averiguar quién es, puede decirles que no pueden usar su contenido de esa manera. Si posee un sitio web, puede dictar cómo se puede usar.

Tenga una mirada en framkillers: http://en.wikipedia.org/wiki/Framekiller

Ésta es una técnica para evitar que los sitios que se muestra en marcos flotantes. Tenga en cuenta que incluso los framekillers pueden ser asesinados.

+0

Así que, básicamente, si están comprometidos no puedo detenerlos mediante programación. Gracias. ¿Es cierto que dicto cómo se usa mi sitio web porque dejo que el público lo use, así que, ¿puedo ir tras los ladrones? – David19801

+0

Definitivamente. Es su propiedad para que pueda dictar los términos. El problema es hacer cumplir. Dependiendo de qué país esté involucrado, puede ser un poco difícil. Pero siempre puede enviar un aviso a su ISP directamente. No se me ocurre nada en la cabeza para obtener una lista por código. Estoy en el teléfono ky, así que no puedo buscar en este momento :) – JohnP

+0

También es posible que desee ver la solución de jackjoe también. Funcionará dependiendo de su configuración. Y al igual que pst menciona, podrían ser agradables así que pregunta primero! – JohnP

1

El acceso HTTP se puede bloquear en cierta medida mediante el uso de un filtro HTTP Referer. El acceso "por el servidor de host" también se puede controlar mirando al Referer en los registros de HTTP. No es una solución perfecta, pero para el acceso estándar al navegador obtendrá la mayor parte del camino hasta allí. ("No Hot-linking" configuraciones veces trabajan de esta manera.)

Para emprender acciones legales, busque el consejo de un abogado :-) Sin embargo, mi primera inclinación sería pedir a los otros propietarios de sitios para parar. Ellos pueden ser amables.

3

Utilice el mismo método que he sugerido aquí: How to limit display of iframe from an external site to specific domains only

En pocas palabras, se agrega un script PHP en cada página (en su caso es probable que sea sólo uno, suponiendo que es una plantilla), este la secuencia de comandos limita la visualización a uno (o más) dominios de referencia.

Este método es mejor que un método de javascript porque los usuarios pueden tenerlo deshabilitado.

+1

Este método tiene una gran desventaja: algunas firwalls bloquean que los navegadores envíen el encabezado Referer. En ese caso, los usuarios no podrán acceder a la página. – Rafael

+0

es una buena observación, en ese caso colocaría un mensaje para todos los dominios "prohibidos", incluso aquellos falsos positivos, con los contactos del sitio para que los usuarios puedan contactar y solicitar agregarlos como un dominio seguro. El OP puede verificar cuáles están robando a través de los registros del servidor y excluir aquellos, incluso si lo solicitan a través de los contactos. Todavía prefiero este método sobre los métodos de JavaScript. – jackJoe

+0

Todos tienen habilitado JavaScript. Tienes que vivir en el mundo antiguo si no tienes activado javascript. Casi todos los sitios en la web usan javaScript de una forma u otra. Deshabilitar JavaScript significa desconectarte de la web. – Pinkie

0

se puede utilizar este js código en la parte superior de su página web (página de encabezado)

if (window.top !== window.self) window.top.location.replace(window.self.location.href);