Skip to main content
Back to blog

SEO Vodič Korak 7: Bezbednost — Osnova koju Google Očekuje 2026.

·12 min read·by LANGR SEO

SEO Vodič Korak 7: Bezbednost

Ovo je Korak 7 iz 13-koraka SEO Vodiča. Bezbednost nije samo zaštita korisnika — direktno utiče na vaše rangiranje u pretraživačima. Google koristi HTTPS kao signal za rangiranje od 2014. godine, a očekivanja su se samo povećala.


Većina vlasnika sajtova misli o bezbednosti kao o binarnom faktoru: "Imamo SSL, što znači da smo zaštićeni." U stvarnosti, Google procenjuje desetine sigurnosnih signala. Sajtovi sa pravilnim sigurnosnim zaglavljima, važećim sertifikatima i bez mešanog sadržaja bolje se rangiraju od sajtova koji imaju samo osnovni SSL sertifikat — pod svim ostalim faktorima jednakim.

Dobra vest: većina bezbednosnih popravki je jednokratna konfiguracija. Podesite ih jednom, i one trajno štite vaše rangiranje.

Konfiguracija SSL-a

SSL (tehnički TLS) šifruje vezu između vašeg servera i posetilaca. Od 2014. godine, Google je izričito potvrdio HTTPS kao signal za rangiranje. U 2026. godini, neimanje HTTPS-a nije samo pitanje rangiranja — Chrome označava HTTP sajtove kao "Nema bezbednost" u adresnoj traci, uništavajući poverenje korisnika.

Zahtevi za pravilno SSL:

| Zahtev | Zašto | Kako proveriti | |--------|-------|----------------| | Važeći sertifikat | Isteče = upozorenje pretraživača = odustali korisnici | Proverite datum isteka | | Puna lanac | Nepotpuni lanci ne funkcionišu na nekim uređajima | SSL Labs test | | TLS 1.2+ | Starije verzije imaju poznate ranjivosti | SSL Labs test | | Nema SHA-1 | Zastarjelo, pregledači to odbacuju | Detalji sertifikata | | SAN pokrivenost | www i non-www moraju biti obuhvaćeni | Detalji sertifikata | | Automatsko obnavljanje | Sprečava katastrofe usled isteka | Let's Encrypt / podešavanje provajdera |

Ocena SSL-a:

100% = Važeći sertifikat + Puna lanac + TLS 1.3 + Jaki šifarnik + Automatsko obnavljanje
  0% = Istečeni ili nedostajući sertifikat

Uobičajene greške u SSL-u:

  1. Sertifikat isteče bez upozorenja — Podesite monitoring (Korak 6) najmanje 30 dana pre isteka
  2. Nepotpuni lanac sertifikata — Server mora slati međusobne sertifikate, a ne samo dužinu
  3. Mješoviti sadržaj — HTTPS stranica učitava HTTP resurse (slike, skripte, stilove)
  4. Petlje preusmeravanja — HTTP → HTTPS → HTTP ciklusi uzrokovani pogrešno konfigurisanim CDN/proxy
  5. Neusklađenost non-www i www — Sertifikat pokriva jedan, ali ne i drugi

Brza pobeda: Provedite svoju domenu kroz SSL Labs (ssllabs.com/ssltest). Sve što je ispod "A" rejtinga ima probleme koji zahtevaju delovanje. Većina provajdera hosting-a rešava ovo jednim klikom.

Sigurnosna zaglavlja

Sigurnosna zaglavlja su HTTP odgovarajući zaglavlja koja uputstava preglednike kako da se ponašaju prilikom učitavanja vašeg sajta. Ona sprečavaju čitave kategorije napada — a Googleovi roboti ih proveravaju.

Osnovna sigurnosna zaglavlja:

Politika sigurnosti sadržaja (CSP)

CSP je najmoćnije sigurnosno zaglavlje. To govori pregledačima tačno koji su resursi (skripte, stilovi, slike, fontovi) dozvoljeni za učitavanje 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 skripti između sajtova (XSS)
  • Napadi na umetanje podataka
  • Clickjacking (putem frame-ancestors)
  • Neovlašćeno izvršavanje skripti (kriptovaluti, ad-injektori)

Strategija implementacije CSP:

  1. Počnite sa Content-Security-Policy-Report-Only (prijavljuje povrede bez blokiranja)
  2. Pratite izveštaje 1-2 nedelje
  3. Dodajte legitimačne izvore na belu listu
  4. Pređite u režim primene
  5. Dodajte report-uri ili report-to za kontinuirano logovanje povreda

X-Frame-Options

Sprečava vaš sajt da bude ugrađen u iframes na drugim domenima (zaštita od clickjackinga).

X-Frame-Options: DENY

Ili, ako treba da omogućite oblikovanje iz iste domene:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Sprečava pretraživače da "njuškanje" MIME tipa (tumačenje datoteka kao različitih tipova od onoga što je deklarisano).

X-Content-Type-Options: nosniff

Ova linija sprečava napade gde .jpg datoteka sadrži skrivene JavaScript kodove koje pregledač može izvršiti.

Referrer-Policy

Kontroliše koliko informacija o referer-u 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 iz iste domene, ali samo origin (domen) za zahteve preko domena. Balansira potrebe analitike sa privatnošću.

Permissions-Policy

Kontroliše koje funkcionalnosti pregledača (kamera, mikrofon, geolokacija itd.) mogu biti korišćene na vašem sajtu.

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

Onemogućavanje funkcionalnosti koje ne koristite sprečava zloupotrebu od strane skripti trećih strana.

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 pobeda: Dodajte svih 5 zaglavlja iznad u konfiguraciju vašeg servera. To traje 5 minuta i odmah poboljšava vašu bezbednost u bilo kojem alatu za skeniranje.

HSTS Preload

HTTP Strict Transport Security (HSTS) govori pregledačima da uvek koriste HTTPS za vašu domenu — čak i pre prvog zahteva. Bez HSTS-a, prvi poset vašem sajtu može još uvek koristiti HTTP (ranjiv na presretanje) pre nego što se desi preusmeravanje na HTTPS.

HSTS zaglavlje:

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

Tri direktive:

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

HSTS preload lista:

Ultimatna zaštita HSTS. Pregledači dolaze sa ugrađenom listom domena koje moraju uvek koristiti HTTPS. Slanjem svoje domene na hstspreload.org, to znači:

  • Posetioci prvi put dobijaju HTTPS odmah (nema HTTP → HTTPS preusmeravanja)
  • Nemoguće je za napadače da osakate veze
  • Trajno (teško je ukloniti jednom kada se dostavi)

Zahtevi za HSTS preload:

  1. Važeći HTTPS sertifikat
  2. Preusmeriti 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: Samo pošaljite na preload ako SVE vaše poddomene podržavaju HTTPS. Direktiva includeSubDomains znači da će svaka HTTP-jedina poddomena postati nedostupna.

Brza pobeda: Ako već imate HTTPS na svim poddomenama, dodajte potpuno HSTS zaglavlje i pošaljite 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 skeniranje ranjivosti proverava:

  • Zastarjeli softver: WordPress, dodaci, JavaScript biblioteke sa poznatim CVE-ima
  • Izložene datoteke: .env, .git, wp-config.php, dumpovi baza podataka
  • Curjenje informacija: Zaglavlja verzije servera, režim debagovanja, stack trace
  • Podrazumevani kredencijali: Administratorske stranice bez autentifikacije, podrazumevane lozinke
  • Otvorene portove/usluge: Nepotrebne usluge izložene internetu
  • Tačke umetanja: Forme bez CSRF zaštite, nevalidirani unosi

Uobičajene ranjivosti po platformama:

| Platforma | Najveća ranjivost | Rešavanje | |-----------|-------------------|-----------| | WordPress | Zastarjeli dodaci | Automatsko ažuriranje + WAF | | Shopify | Dozvole aplikacija trećih strana | Revizija liste aplikacija svaka tri meseca | | Next.js | Izložene API rute | Auth middleware + ograničavanje brzine | | Statički sajtovi | Pogrešna konfiguracija CDN-a | Pregled pravila keširanja | | Prilagođeni | SQL injekcija | Parametrizovani upiti |

Frekvencija skeniranja:

  • Dnevno: Automatizovano skeniranje površine (SSL, zaglavlja, izložene datoteke)
  • Nedeljno: Provera ranjivosti zavisnosti (npm audit, WordPress skener)
  • Mesečno: Duboko skeniranje sa autentifikovanim testiranjem
  • Posle svake isporuke: Provera regresije

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

Mešani sadržaj

Mešani sadržaj se dešava kada HTTPS stranica učitava resurse (slike, skripte, stilove, iframes) preko HTTP-a. Ovo delimično prekida šifrovanje i izaziva upozorenja u pregledaču.

Tipovi mešanog sadržaja:

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

Aktivni mešani sadržaj blokiraju moderni pregledači — što znači da se vaše skripte i stilovi prosto neće učitati. Pasivni mešani sadržaj se učitava, ali prikazuje sigurnosna upozorenja.

Pronalazak mešanog sadržaja:

  1. Otvorite Chrome DevTools → Konzola
  2. Potražite "Mešani sadržaj" upozorenja
  3. Alternativno, skenirajte sa crawler-om (Screaming Frog, LANGR)

Uobičajeni izvori mešanog sadržaja:

  • Hardkodirane http:// URL adrese u sadržaju (blog postovi, opisi proizvoda)
  • Vidžeti trećih strana koji učitavaju HTTP resurse
  • Ugrađeni sadržaji (stari YouTube ugrađivači, vidžeti društvenih mreža)
  • CSS background-image sa HTTP URL-ovima
  • Fontovi učitani preko HTTP-a

Popravka mešanog sadržaja:

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

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

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

Popravka 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 pobeda: Otvorite svoju početnu stranicu u Chrome-u, pritisnite F12, proverite tab Konzole za upozorenja o mešanom sadržaju. Popravite sve što se pojavi — ovo je direktno vidljivo Google-u.

Rizici skripti trećih strana

Svaka eksterna skripta koju učitate je potencijalna bezbednosna (i performansna) opasnost. Skripte trećih strana mogu:

  • Biti kompromitovane (napadi na lanac snabdevanja)
  • Praćenje vaših korisnika bez pristanka (kršenje GDPR-a)
  • Usporiti vaš sajt (blokiranje prikaza, mrežna latencija)
  • Pokvariti funkcionalnost (ažuriranja verzija, prekidi)
  • Umetati neželjeni sadržaj (skripte za oglase koje ne rade)

Revizija vaših skripti trećih strana:

| Skripta | Neophodna? | Stepen rizika | Alternativa | |---------|------------|---------------|-------------| | Google Analytics | Često da | Nizak | Praćenje na strani servera | | Chat vidžeti | Možda | Srednji | Rešenja koja se hostuju sama | | Dugmad za deljenje na društvenim mrežama | Retko | Srednji | Statički linkovi za deljenje | | A/B testiranje | Ponekad | Visoki | Testiranje na strani servera | | Pixel za ponovno ciljanje | Poslovna odluka | Visoki | Podaci prvih strana | | Font CDN-ovi | Praktično | Nizak | Fontovi koji se sami hostuju |

Smanjenje rizika za bitne skripte trećih strana:

  1. Integritet podresursa (SRI): Verifikacija haša sprečava učitavanje skripti koje su prepravili
  2. <script src="https://cdn.example.com/lib.js"
            integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
            crossorigin="anonymous"></script>
  1. CSP ograničenja: Dozvolite samo skripte iz poznatih domena
  2. Sandboxovane iframe: Izoluju vidžete trećih strana
  3. Redovne revizije: Kvartalni pregled svih eksternih resursa
  4. Monitoring: Upozorenje na nove spoljne domene koji se pojavljuju na vašim stranicama

Brza pobeda: Napravite listu svih