php - remove - strip_tags wordpress
Mejor práctica: scripting legítimo entre sitios (5)
Personalmente, me gustaría llamar a ese otro dominio en el servidor y obtener y analizar los datos allí para su uso en su página. De esta forma evitará cualquier problema y obtendrá el poder de un lenguaje / plataforma del lado del servidor para obtener y analizar los datos.
No estoy seguro si eso funcionaría para su situación específica ... difícil de saber incluso con su descripción detallada ...
Mientras que las secuencias de comandos entre sitios se consideran generalmente negativas, he encontrado varias situaciones en las que es necesario.
Recientemente estuve trabajando dentro de los límites de un sistema de administración de contenido muy limitado. Necesitaba incluir el código de la base de datos dentro de la página, pero el servidor de alojamiento no tenía disponible nada utilizable. Configuré un par de scripts básicos en mi propio servidor, pensando originalmente que podía usar AJAX para importar los contenidos de mis scripts directamente en la plantilla del CMS (conservando así imágenes dinámicas, elementos de menú, CSS, etc.). Estaba equivocado.
Debido a las limitaciones de los objetos XMLHttpRequest
, no es posible obtener contenido de un dominio diferente. Así que pensé en iFrame : aunque no soy partidario de los marcos, pensé que podría crear un marco que coincidiera con el ancho y alto del contenido, para que pareciera nativo. Una vez más, me bloquearon las "protecciones" de scripts entre sitios. Si bien podría cargar un archivo remoto en el iFrame , no podría ejecutar JavaScript para modificar su tamaño en la página del host o dentro de la página cargada.
En este caso particular, no pude apuntar un subdominio a mi servidor. Tampoco pude crear una secuencia de comandos en el servidor CMS que pudiera proxy de contenido de mi servidor, por lo que mi último pensamiento fue utilizar un JavaScript remoto.
Un JavaScript remoto funciona. Se rompe cuando el usuario tiene JavaScript desactivado, lo cual es un inconveniente; pero funciona. El "problema" que tenía con el uso de JavaScript remoto era que tenía que usar la función JS document.write()
para generar cualquier contenido. Cualquier salida que no sea JS causa errores de script. Además de usar document.write()
para cada línea, también debe asegurarse de que se escape el contenido, o de lo contrario terminará con más errores de secuencia de comandos.
Mi solución fue la siguiente:
Mi secuencia de comandos recibió un parámetro GET ("página") y luego buscó el archivo ( {$page}.php
) y leyó los contenidos en una variable. Sin embargo, tuve que utilizar técnicas de búfer incómodas para ejecutar realmente los scripts incluidos (para cosas como la interacción con la base de datos) y luego eliminar el contenido final de todos los caracteres de salto de línea ( /n
) seguido de escapar de todos los caracteres necesarios. El resultado final es que mi script original (que emite JavaScript) accede a scripts aparentemente "estándar" en mi servidor y convierte su salida estándar a JavaScript para mostrar dentro de la plantilla de CMS.
Si bien esta solución funciona, parece que puede haber una mejor manera de lograr lo mismo. ¿Cuál es la mejor manera de hacer que las secuencias de comandos entre sitios específicamente trabajen con el propósito de incluir contenido de un dominio completamente diferente?
Me encontré con esa secuencia de comandos proxy del lado del servidor YDN antes. Dice que está diseñado para funcionar con las API de búsqueda de Yahoo.
¿Funcionará con cualquier dominio, si simplemente recorta el código API de Yahoo? ¿O necesita reemplazarlo con el dominio con el que desea que funcione?
Tienes tres opciones:
- Cree un script proxy del lado del servidor .
Cree una secuencia de comandos remota para leer en HTML dinámico remoto. Use una biblioteca como jQuery para hacer esto más fácil. Puede usar la función de carga para inyectar HTML donde sea necesario. EDITAR Lo que originalmente quise decir, por ejemplo, el # 2 estaba utilizando JSONP , que requiere que el script del lado del servidor reconozca el "callback =?" param.
Utilice un proxy Flash del lado del cliente y configure un archivo crossdomain.xml en la raíz web de su servidor.
Puedes probar easyXDM , al incluir muy poco código, puedes pasar llamadas de datos o métodos entre documentos de diferentes dominios.
El javascript local puede acceder al contenido remoto iframe.
El servidor remoto solo tiene que establecer el document.domain
de la página.
P.ej:
El sitio A contiene un iframe con src=''Site B/home.php''
home.php se ve así:
[php stuff]...[/php]
[script type=''text/javascript'']document.domain=''Site A''[/script]