У меня есть сайт разработки и производства :
У меня есть ссылка электронной почты по электронной почте внизу, исходный код php выглядит следующим образом:
<section> <h2>Looking for a LAMP, WordPress or Drupal Developer?</h2> <p>Contact me today: <br/> <a href='mailto:mail@example.com'>mail@example.com</a> <br/> <a href='tel:+13334445555'>333 444 5555</a> </p> </section>
На моем сайте разработки все нормально, произведенный html выглядит следующим образом:
<section> <h2>Looking for a LAMP, WordPress or Drupal Developer?</h2> <p>Contact me today: <br> <a href="mailto:mail@example.com">mail@example.com</a> <br> <a href="tel:+13334445555">333 444 5555</a> </p> </section>
Затем таинственным образом на моем производственном сайте добавляется моя javascript моя ссылка mailto (и только ссылки mailto, в этом случае только одна, но я добавил больше, и скрипт также добавлен к ним). Вот вывод html на продукцию сайт:
<section> <h2>Looking for a LAMP, WordPress or Drupal Developer?</h2> <p>Contact me today: <br> <a href="mailto:mail@example.com">mail@example.com <script cf-hash="f9e31" type="text/javascript"> /* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function() {for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */ </script> </a> <br> <a href="tel:+13334445555">333 444 5555</a> </p> </section>
Я проверил код на моем рабочем сервере, этого скрипта там нет.
Что может быть?
Это не связано с ColdFusion. В этом коде cf-hash
является атрибутом тега SCRIPT
(обычный HTML). Поиск по 'cf-hash = "f9e31" получает много похожего кода. Нашел эту ссылку, которая указывает на то, что это, возможно, сценарий защиты электронной почты CloudFlare. Это будет что-то, что работает на вашем производственном сервере, которого нет в вашей локальной среде разработки.
CloudFlare по умолчанию запутывает ваш адрес электронной почты. Если вы хотите игнорировать обфускацию для электронной почты, просто оберните их в теги комментариев HTML, как это. CloudFlare проигнорирует их.
<--/email_off-->EMAIL ADDRESS<!--/email_off-->
Источник: http://roaringapps.com/blog/cloudflare-email-obfuscation/
Cloudflare скрывает адрес электронной почты, чтобы предотвратить очистку ботов от веб-страниц.
Если вы обычный веб-пользователь, а не бот, вы будете запускать JavaScript. Cloudflare использует JavaScript, который расшифровывает адрес электронной почты.
Некоторые веб-страницы не разрешают запуск встроенного JavaScript, и, таким образом, конечные пользователи не могут видеть адреса электронной почты.
Рассмотрите возможность изменения метатега Content_Security-Policy, выпущенного веб-сайтом, чтобы разрешить запуск встроенного JavaScript.
например, см. использование «небезопасно-встроенный»;
«Начиная с Chrome 46 встроенные скрипты могут быть включены в белый список, задав хэш-код, основанный на base64 исходного кода в политике. Этот хэш должен быть префикс используемого хэш-алгоритма (sha256, sha384 или sha512). См. Использование хэша для элементов для пример."
Более полезная информация об этом здесь: https://developer.chrome.com/extensions/contentSecurityPolicy