¿Cómo puedo detectar el lado del servidor (C#, asp.net mvc) si la página cargada está dentro de un iframe? GraciasDetectar si una página está dentro de un iframe - servidor
Respuesta
Esto no es posible, sin embargo.
<iframe src="mypage?iframe=yes"></iframe>
y después comprobar si serverside la cadena de consulta contiene iframe = yes o con la cabecera Referer enviar por el navegador.
No hay forma de comprobar esto que se ajuste a su requisito de "seguridad" como se indica en su comentario en la respuesta de @ WTP.
No creo que el lado del servidor pueda hacer esto, entonces ¿por qué no poner un control oculto en su página que estará en el iframe? Cuando se carga la URL en el iframe, puede agregar algún código del lado del cliente para configurar la entrada oculta para indicar que se encuentra en un iframe. La comprobación más fácil sería en el lado del cliente en un método de proceso de carga, así:
// Set hidden input
someHiddenInput.value = self != top
Es más seguro que la cadena de consulta, pero todavía podría no ser suficiente seguridad para usted.
Mis 2 centavos.
utilizar el siguiente código dentro de la forma:
<asp:HiddenField ID="hfIsInIframe" runat="server" />
<script type="text/javascript">
var isInIFrame = (self != top);
$('#<%= hfIsInIframe.ClientID %>').val(isInIFrame);
</script>
entonces usted puede comprobar fácilmente si se trata de un marco flotante en el código subyacente:
bool bIsInIFrame = (hfIsInIframe.Value == "true");
probado y funcionó para mí.
Editar: Tenga en cuenta que necesita jQuery para ejecutar mi código anterior. Para ejecutarlo sin jQuery sólo tiene que utilizar un código como el siguiente código (no probado) para establecer el valor del campo oculto:
document.getElementById('<%= hfIsInIframe.ClientID %>').value = isInIFrame;
Edición 2: Esto sólo funciona cuando la página se carga una vez. Si alguien tiene una idea para mejorar esto, házmelo saber. En mi caso, afortunadamente solo necesito el valor después de una devolución de datos.
esta debería ser la respuesta. –
no @RoyiNamir, esta no es una solución de servidor;) – tetri
@tetri, con este código puede verificar desde el lado del servidor si se encuentra en un iframe. Estoy de acuerdo en que hay algún código de cliente, pero en mi opinión es la mejor solución porque no le importa cómo se llama la página. La respuesta aceptada actual requiere que el valor de solicitud se establezca en cada iframe, y esto puede olvidarse. – Undercover1989
- 1. ¿Cómo puedo detectar si un iframe está cargado?
- 2. Detección del lado del servidor de que se muestra una página dentro de un IFrame
- 3. Comprobar si la página está en Iframe para Google Chrome
- 4. detectar haga clic dentro de iframe
- 5. Detectar la incrustación de iFrame en Javascript
- 6. ¿Cómo identificar si una página web se está cargando dentro de un iframe o directamente en la ventana del navegador?
- 7. Detectar cambio de orientación dentro del iframe multidominio
- 8. Cómo detectar si un usuario deja una página en PHP
- 9. ¿Es posible detectar si VoiceOver está activado en una página web en iPhone?
- 10. Compartiendo la variable javascript global de una página con un iframe dentro de esa página
- 11. window.history.back() vuelve a cargar la página en Internet Explorer cuando está dentro de un iframe?
- 12. Cómo detectar si un micrófono está presente
- 13. ¿Cómo detectar si una página HTML contiene un video?
- 14. Detectar desde el navegador si está instalada una aplicación específica
- 15. Detectar si el contenido del iframe se ha cargado satisfactoriamente
- 16. Detectar si un RichTextBox está vacío
- 17. detectar si un objeto está vacía
- 18. Jquery dentro de Iframe
- 19. cómo detectar mediante programación si mi aplicación se está ejecutando en IIS 7.0 modo integrado dentro de una página ASP.NET
- 20. Mostrar la página de manera diferente (css) si dentro de iframe
- 21. ¿Está ejecutando una aplicación GWT (incluidos Applets) dentro de un IFRAME desde una aplicación ASP.NET 3.5?
- 22. OAuth no funciona dentro de un iframe
- 23. Deshabilitar cookies dentro de un marco/Iframe
- 24. ¿Cuál es la mejor manera de detectar si un servidor proxy está disponible?
- 25. Cómo cerrar iframe desde dentro de iframe?
- 26. ¿Hay alguna forma de detectar si un objeto está bloqueado?
- 27. Detectar si CGPoint dentro del polígono
- 28. ¿Identifica si un punto está dentro de un polígono?
- 29. Detectar si el padre html está oculto
- 30. Obtener elemento dentro de un iFrame
gracias, pero esto no resuelve mi problema, ya que quiero que se acceda a la página solo si está dentro de un iframe (por razones de seguridad). agregar algo a la cadena de consulta es demasiado fácil de hacer para estar seguro. – pistacchio
Si es por razones de seguridad, entonces estás haciendo algo mal. En el mejor de los casos, lo único que puede darte pistas para estar en un iframe es un referer. E incluso eso es forjable. La seguridad se realiza mediante verificaciones de acceso y validación, no mediante webs frágiles de suposiciones. – Yuliy