Skip to main content
Back to blog

SEO Vodič Korak 7: Sigurnost — Osnovni Standard koji Google Očekuje 2026.

·12 min read·by LANGR SEO

SEO Vodič Korak 7: Sigurnost

Ovo je Korak 7 od 13-Korak SEO Vodiča. Sigurnost nije samo o zaštiti korisnika — direktno utiče na vaše rangiranje pretraživača. Google koristi HTTPS kao signal za rangiranje od 2014. godine, a očekivanja su samo rasla.


Većina vlasnika sajtova sigurnost smatra binarnom: "Imamo SSL, tako da smo sigurni." U stvarnosti, Google procjenjuje desetine sigurnosnih signala. Sajtovi sa pravilnim sigurnosnim zaglavljima, važećim certifikatima, i bez miješanog sadržaja imaju bolje rangiranje od sajtova koji imaju samo osnovni SSL certifikat — pod uslovom da je sve ostalo jednako.

Dobra vijest: većina sigurnosnih popravki su jednokratne konfiguracije. Postavite ih jednom, i one će trajno štititi vaše rangiranje.

SSL Konfiguracija

SSL (tehnički TLS) enkriptuje vezu između vašeg servera i posjetilaca. Od 2014. godine, Google je eksplicitno potvrdio HTTPS kao signal za rangiranje. U 2026. godini, nemanje HTTPS nije samo pitanje rangiranja — Chrome označava HTTP sajtove kao "Nije Sigurno" u adresnoj traci, uništavajući povjerenje korisnika.

Zahtevi za pravilnim SSL-om:

| Zahtev | Zašto | Kako Proveriti | |--------|-------|----------------| | Važeći certifikat | Istekao = upozorenje u pretraživaču = odskočni korisnici | Proverite datum isteka | | Puni lanac | Nepotpuni lanci ne rade na nekim uređajima | SSL Labs test | | TLS 1.2+ | Starije verzije imaju poznate ranjivosti | SSL Labs test | | Bez SHA-1 | Odbaceno, pretraživači to odbacuju | Detalji o certifikatu | | SAN pokrivenost | www i ne-www moraju biti pokriveni | Detalji o certifikatu | | Auto-obnova | Sprečava katastrofe isteka | Let's Encrypt / konfiguracija provajdera |

SSL ocenjivanje:

100% = Važeći certifikat + Puni lanac + TLS 1.3 + Jake šifre + Auto-obnova
  0% = Istekao ili nedostajući certifikat

Uobičajene greške kod SSL-a:

  1. Certifikat ističe bez obaveštenja — Postavite monitoring (Korak 6) minimum 30 dana pre isteka
  2. Nepotpuni lanac certifikata — Server mora slati intermedijarne certifikate, a ne samo leaf certifikat
  3. Mješoviti sadržaj — HTTPS stranica učitava HTTP resurse (slike, skripte, stilove)
  4. Petlje preusmjeravanja — HTTP → HTTPS → HTTP ciklusi uzrokovani pogrešnom konfiguracijom CDN-a/proksija
  5. Neslaganje ne-www vs www — Certifikat pokriva jedan, ali ne i drugi

Brza pobjeda: Prođite kroz svoj domen na SSL Labs (ssllabs.com/ssltest). Sve ispod ocjene "A" ima probleme koji se moraju riješiti. Većina provajdera hostinga rešava ovo jednim klikom.

Sigurnosna Zaglavlja

Sigurnosna zaglavlja su HTTP odgovorna zaglavlja koja upućuju pretraživače kako da se ponašaju prilikom učitavanja vašeg sajta. Sprečavaju čitave kategorije napada — a Google-ovi crawleri ih proveravaju.

Osnovna sigurnosna zaglavlja:

Politika Sigurnosti Sadržaja (CSP)

CSP je najmoćnije sigurnosno zaglavlje. Govori pretraživačima tačno koje resurse (skripte, stilove, slike, fontove) je dozvoljeno učitati na vašim stranicama.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';

Šta CSP sprečava:

  • Napadi međusajtskog skriptinga (XSS)
  • Napadi injekcije podataka
  • Klikanje (putem frame-ancestors)
  • Neovlašteno izvršavanje skripti (kriptomineri, injektori oglasa)

CSP strategija implementacije:

  1. Počnite sa Content-Security-Policy-Report-Only (beleži prekršaje bez blokiranja)
  2. Praćenje izveštaja tokom 1-2 nedelje
  3. Stavljanje na belu listu legitimnih izvora
  4. Pređite na režim primene
  5. Dodajte report-uri ili report-to za trajno beleženje prekršaja

X-Frame-Options

Sprečava da vaša stranica bude ugnježdena u iframe-ovima na drugim domenima (zaštita protiv klikanja).

X-Frame-Options: DENY

Ili ako je potrebno dozvoliti ugniježdena okvira iste domene:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Sprečava pretraživače od MIME-type sniffinga (tumačenje fajlova kao različitih tipova od onih koje su deklarisane).

X-Content-Type-Options: nosniff

Ova linija sprečava napade gde .jpg fajl sadrži skriveni JavaScript koji pretraživač može izvršiti.

Referrer-Policy

Kontroliše koliko referrer informacija se šalje kada korisnici kliknu na linkove sa vašeg sajta.

Referrer-Policy: strict-origin-when-cross-origin

Ovo šalje punu URL adresu za zahteve iste domene, ali samo izvor (domen) za zahteve različitih domena. Balansira potrebe analitike sa privatnošću.

Permissions-Policy

Kontroliše koje funkcije pretraživača (kamera, mikrofon, geolokacija, itd.) mogu biti korišćene na vašem sajtu.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Onemogućavanje funkcija koje ne koristite sprečava treće strane da ih zloupotrebljavaju.

Primer implementacije zaglavlja (Next.js):

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

Implementacija zaglavlja (Apache .htaccess):

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Implementacija zaglavlja (Nginx):

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Brza pobjeda: Dodajte svih 5 zaglavlja iznad u svoju serversku konfiguraciju. Ovo traje 5 minuta i odmah poboljšava vašu sigurnost u bilo kojem alatu za skeniranje.

HSTS Preload

HTTP Strict Transport Security (HSTS) govori pretraživačima da uvijek koriste HTTPS za vašu domenu — čak i prije prvog zahteva. Bez HSTS, prva poseta vašem sajtu još uvijek može koristiti HTTP (rana podložna presretanju) prije nego što preusmerenje na HTTPS bude izvršeno.

HSTS zaglavlje:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Tri direktive:

| Direktiva | Značenje | |-----------|----------| | max-age=31536000 | Zapamti ovo na 1 godinu (u sekundama) | | includeSubDomains | Primeni na sve poddomene | | preload | Zahteva uključivanje u preload liste pretraživača |

HSTS preload lista:

Konačna HSTS zaštita. Pretraživači dolaze sa ugrađenom listom domena koje uvijek moraju koristiti HTTPS. Podnošenje vaše domene na hstspreload.org znači:

  • Prvi posjetioci odmah dobijaju HTTPS (bez HTTP → HTTPS preusmjeravanja)
  • Nemoguće je za napadače da smanje veze
  • Trajno (teško je ukloniti nakon podnošenja)

Zahtevi za HSTS preload:

  1. Važeći HTTPS certifikat
  2. Preusmerite sve HTTP na HTTPS (uključujući poddomene)
  3. HSTS zaglavlje sa max-age >= 31536000
  4. HSTS zaglavlje uključuje includeSubDomains
  5. HSTS zaglavlje uključuje preload
  6. Sve poddomene moraju podržavati HTTPS

Upozorenje: Podnose samo za preload ako SVE vaše poddomene podržavaju HTTPS. Direktiva includeSubDomains znači da će svaki HTTP-only poddomen postati nedostupan.

Brza pobjeda: Ako već imate HTTPS na svim poddomenama, dodajte puno HSTS zaglavlje i podnesite na hstspreload.org. Obrada traje nekoliko nedelja, ali zaštita je trajna.

Skeniranje Ranjivosti

Automatizovano skeniranje ranjivosti identifikuje poznate sigurnosne probleme u vašem sistemu pre nego što ih napadači iskoriste.

Šta proverava skeniranje ranjivosti:

  • Zastarela softverska rešenja: WordPress, dodaci, JavaScript biblioteke sa poznatim CVE-ovima
  • Izloženi fajlovi: .env, .git, wp-config.php, dumps baze podataka
  • Curenje informacija: Zaglavlja verzija servera, debug režim, stack tragovi
  • Defaultni kredencijali: Administratorske stranice bez autentifikacije, default lozinke
  • Otvoreni portovi/usluge: Nepotrebne usluge izložene internetu
  • Tačke injekcije: Obrasci bez CSRF zaštite, nevalidirani unosi

Uobičajene ranjivosti po platformama:

| Platforma | Najveća Ranjivost | Rešenje | |-----------|-------------------|---------| | WordPress | Zastareli dodaci | Auto-aktuelizacija + WAF | | Shopify | Dozvole aplikacija trećih strana | Revizija liste aplikacija svaka tri meseca | | Next.js | Izložene API rute | Autentifikacijski middleware + limitiranje brzine | | Staticki sajtovi | Pogrešna konfiguracija CDN-a | Pregled pravila keširanja | | Prilagođeni | SQL injekcija | Parametrizovani upiti |

Učestalost skeniranja:

  • Dnevno: Automatizovano skeniranje površine (SSL, zaglavlja, izloženi fajlovi)
  • Nedeljno: Provera ranjivosti zavisnosti (npm audit, WordPress plugin skener)
  • Monthly: Dubinsko skeniranje sa autentifikovanim testiranjem
  • Posle svake implementacije: Provera regresije

Brza pobjeda: Pokrenite npm audit (Node.js) ili proverite svoju CMS listu dodataka za zastarele komponente. Odmah rešite kritične/visoke probleme.

Miješani Sadržaj

Miješani sadržaj se javlja kada HTTPS stranica učitava resurse (slike, skripte, stilove, iframe-ove) putem HTTP-a. Ovo delimično kvari enkripciju i pokreće upozorenja u pretraživaču.

Tipovi miješanog sadržaja:

| Tip | Ozbiljnost | Primer | Ponašanje pretraživača | |-----|------------|--------|-------------------------| | Aktivni | Visok | HTTP skripta, iframe, CSS | Blokiran po defaultu | | Pasivni | Srednji | HTTP slika, video, audio | Učitava se uz upozorenje |

Aktivni miješani sadržaj je blokiran od strane modernih pretraživača — što znači da vaša skripta i stilovi jednostavno neće učitati. Pasivni miješani sadržaj se učitava, ali prikazuje sigurnosna upozorenja.

Pronaći miješani sadržaj:

  1. Otvorite Chrome DevTools → Console
  2. Potražite "Miješano Sadržaj" upozorenja
  3. Alternativno, skenirajte sa crawler-om (Screaming Frog, LANGR)

Uobičajeni izvori miješanog sadržaja:

  • Hardkodirani http:// URL-ovi u sadržaju (blog postovi, opisi proizvoda)
  • Dodaci trećih strana koji učitavaju HTTP resurse
  • Ugrađeni sadržaj (stari YouTube embed-ovi, widgeti društvenih mreža)
  • CSS background-image sa HTTP URL-ovima
  • Fontovi učitani putem HTTP-a

Popravka miješanog sadržaja:

<!-- Loše -->
<img src="http://example.com/image.jpg" />

<!-- Dobro -->
<img src="https://example.com/image.jpg" />

<!-- Najbolje (protokol-relativno, prilagođava se protokolu stranice) -->
<img src="//example.com/image.jpg" />

Ispravka baze podataka (WordPress):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

Brza pobjeda: Otvorite svoju početnu stranicu u Chrome-u, pritisnite F12, proverite konzolu za upozorenja o miješanom sadržaju. Popravite svaku koja se pojavi — ovo su direktno vidljive Google-u.

Rizici Skripti Trećih Strana

Svaka eksternalna skripta koju učitate je potencijalna sigurnosna (i performansna) odgovornost. Skripte trećih strana mogu:

  • Biti kompromitovane (napadi na lance snabdevanja)
  • Pratiti vaše korisnike bez pristanka (GDPR povreda)
  • Usporiti vašu stranicu (blokada renderovanja, mrežna latencija)
  • Pokvariti funkcionalnost (ažuriranja verzija, prekidi)
  • Umetnuti neželjeni sadržaj (pogrešne skripte oglasa)

Revizija vaših skripti trećih strana:

| Skripta | Neophodna? | Nivo Rizika | Alternativa | |---------|-----------|-------------|-------------| | Google Analytics | Često da | Nizak | Praćenje na serveru | | Chat widgeti | Možda | Srednji | Rešenja koja se hostuju sami | | Dugmadi za deljenje na društvenim mrežama | Retko | Srednji | Statčki linkovi za deljenje | | A/B testiranje | Ponekad | Visoko | Server-side testiranje | | Retargeting piksela | Odluka firme | Visoko | Podaci prvih strana | | Font CDN-ovi | Povoljno | Nizak | Samostalno hostovani fontovi |

Ublažavanje rizika za neophodne skripte trećih strana:

  1. Subresource Integrity (SRI): Hash verifikacija sprečava učitavanje izmenjenih skripti
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. CSP ograničenja: Dozvolite samo skripte sa poznatih domena
  2. Sandboxed iframe-ovi: Izolujte widgete trećih strana
  3. Redovne revizije: Kvartalni pregled svih eksternalnih resursa
  4. Monitoring: Upozorenje na nove eksternal domeine koje se pojavljuju na vašim stranicama

Brza pobjeda: Napravite listu svih