Mixed Content Checker

HTML untuk dipindai

Mendeteksi sumber daya http:// yang dimuat di dalam halaman HTTPS.

Berikutnya

Setelah memigrasikan situs ke HTTPS, tag <img>, <script>, <link>, atau <iframe> liar yang masih mengarah ke http://... merusak gembok hijau dan, di browser modern, sering gagal dimuat sama sekali. Masukkan URL dan checker ini memuat halaman, memeriksa setiap subresource (gambar, stylesheet, skrip, font, iframe, video, audio), dan mendaftar apa pun yang disajikan lewat HTTP biasa agar Anda bisa memperbaikinya sebelum pengguna mengenai peringatan “tidak sepenuhnya aman”.

Bagaimana pemindaian bekerja

  1. 1

    Masukkan URL

    URL HTTPS. Scanner mengikuti satu hop redirect.

  2. 2

    Halaman diambil

    HTML diparsing untuk setiap referensi subresource.

  3. 3

    Tiap referensi diklasifikasi

    HTTPS, HTTP, atau protocol-relative (`//cdn...`).

  4. 4

    Laporan dikelompokkan per jenis

    Konten aktif vs. pasif, dengan peringkat keparahan.

Mixed content aktif vs. pasif

Browser memperlakukan dua kelas berbeda:

  • Mixed content aktif (skrip, iframe, stylesheet, XHR/fetch, worker, WebSocket). Diblokir langsung oleh browser modern. Termasuk: <script>, <link rel="stylesheet">, <iframe>, fetch(), XMLHttpRequest, importScripts().
  • Mixed content pasif (gambar, video, poster audio). Dimuat tapi ditandai, gembok jatuh dan bilah URL menampilkan peringatan. Termasuk: <img>, <audio>, <video>, target action form.

Mengapa penting

  • Kepercayaan. Gembok rusak menyiratkan “situs ini tidak aman” ke pengguna yang memperhatikan.
  • Fungsionalitas. Konten aktif yang diblokir berarti skrip tidak berjalan dan stylesheet tidak berlaku, halaman tampak rusak.
  • SEO. Google lebih menyukai halaman HTTPS; sinyal HTTPS rusak merugikan peringkat secara tidak langsung.
  • Kepatuhan. PCI DSS dan banyak kerangka kepatuhan lain mewajibkan HTTPS tanpa mixed content untuk halaman transaksional.

Sumber umum

Sumber Perbaikan tipikal
CDN lawas di HTTP Ganti domain ke CDN HTTPS
Kode embed YouTube / Vimeo lama Perbarui embed ke versi saat ini
URL skrip jaringan iklan Pakai versi HTTPS (tersedia bertahun-tahun)
Font, peta pihak ketiga Ganti http://fonts.googleapis.comhttps://
Widget tombol sosial Pakai kode widget saat ini
URL gambar buatan pengguna Tulis ulang saat save; proxy-load saat tampil
URL ter-hardcode di postingan blog Find-and-replace massal di DB

Strategi perbaikan

  1. URL protocol-relative (//cdn.example.com/a.js). Memuat dengan protokol halaman saat ini. Aman untuk sebagian besar CDN tetapi usang, lebih suka https://... eksplisit.
  2. Tulis ulang di source. Perbarui template dan konten Anda agar memakai https://. Pindai codebase dengan regex: http://(?!localhost).
  3. Upgrade Content Security Policy. Content-Security-Policy: upgrade-insecure-requests memberi tahu browser untuk diam-diam menulis ulang URL aset HTTP ke HTTPS. Terbaik untuk situs yang tidak bisa mengaudit setiap URL.
  4. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> padanan inline.
  5. Proxy aset HTTP-only melalui origin HTTPS Anda jika upstream benar-benar tidak punya endpoint HTTPS (langka hari ini).

Apa yang ditemukan checker

  • Semua URL eksternal yang dirujuk di <img>, <script>, <link>, <iframe>, <video>, <audio>, <source>.
  • Atribut action form.
  • Referensi url(...) CSS inline di blok <style>.
  • Tidak meng-crawl resource yang diinjeksi JavaScript, mereka ditambahkan saat runtime dan butuh audit sisi-browser (panel Issues di Chrome DevTools menangkapnya).

Pertanyaan yang Sering Diajukan

Sebagian. Header CSP upgrade-insecure-requests atau meta tag memberi tahu browser untuk menulis ulang URL subresource HTTP ke HTTPS otomatis. Ia berfungsi saat server memang mendukung HTTPS; jika upstream HTTP-only, penulisan ulang gagal.

Tidak. Hanya resource yang dirujuk di HTML statis. Skrip yang membuat elemen <img> saat runtime tidak akan muncul. Panel Issues Chrome DevTools menangkapnya di browser.

Mereka aman-mixed-content di halaman HTTPS (mewarisi HTTPS). Tetapi rusak pada tool internal HTTP-only atau halaman terarsip, dan mereka usang. Lebih suka https:// eksplisit.

Cache browser. Hard-refresh (Ctrl+Shift+R / Cmd+Shift+R) atau uji di jendela incognito untuk mengonfirmasi perbaikan. Laporan CSP dan peringatan konsol menunjukkan state saat ini.

Pengambil sisi-server mengambil halaman untuk analisis. URL itu sendiri tidak disimpan melebihi request.

Alat Terkait

Alat ini tersedia dalam bahasa lain