Kako izboljšati varnost Joomla spletne strani v 6 korakih

  1. Geslo
    – Ko ste si ustvarili spletno stran, ne obdržite prednastavljenega uporabniškega imena in gesla (ta je navadno kar admin).
    – Za vstop v administratorsko okolje zahtevajte geslo.

    Za pomoč:
    – Najslabša gesla, kako ustvariti dobro geslo:
    http://blog.zabec.net/kraja-gesel-najslabsa-gesla-so/
    – Administrativno okolje > ustvarite .httaccess v administrator directory: https://docs.joomla.org/How_do_you_password_protect_directories_using_htaccess%3F

  1. Razširitve
    Joomla vam ponuja ogromno možnosti razširitev, kadarkoli potrebujete kaj novega, vam je na voljo malo morje razširitev, ki jih lahko opravite s samo nekaj kliki.
    Pa vendar je potrebno pri tem biti izjemno previden, veliko razširitev je t.i. third party, kar pomeni, da niso uradne in večina vdorov se zgodi prav preko njih.

    – V kolikor razširitev več ne uporabljate, potrebujete, jih izbrišite. Več ko imate neposodobljene kode v vaši spletni strani, večja je možnost vdora in zlorabe.

    – Posodabljajte razširitve! Največkrat so na voljo t.i. security fixes, ki odpravljajo varnostne pomankljivosti. Nikoli jih ne izpustite.

    Za pomoč:
    – Lista ranljivih razširitev, ki se sproti posodablja:
    https://vel.joomla.org/live-vel
    – Testiranje razširitev v varnem okolju:
    https://www.joomlatools.com/developer/tools/vagrant/
    Sporočanje posodobitev razširitev:
    https://docs.joomla.org/Help36:Extensions_Extension_Manager_Update

  1. Dovoljenja
    Največji problem predstavlja dovoljenje, ki prav vsem dovoljuje, da lahko prilagajajo, dostopajo do datotek in jih gledajo, dovoljenje se imenuje 777.

    – Dovoljenja uporabljate samo tam kjer jih resnično potrebujete (pa še ta lahko omejite), vse ostalo naj ostane zaklenjeno.

    Za pomoč:
    – Tipična Joomla dovoljenja:
    PHP nastavljen na 0444 > nihče ne more zapisovati v dokument
    Imeniki nastavljeni na 0755 > samo lastnik imenika lahko zapisuje vanj, ostali ga lahko berejo in izvedejo.
    Datoteke nastavljene na 0644 > lastnik lahko zapisuje, ostali jih lahko samo berejo

  2. SSL certifikati
    SSL certifikat potrebujete v kolikor želite ustvariti varno komunikacijo med vašo spletno stranjo in uporabnikom.
    Če imate t.i. e-commerce spletno stran potem je ta certifikat nujno potreben (s SSLjem se med spletno prijavo v trgovino in uporabnikom ustvari kriptirana povezava, v kolikor SSLja nimate je prijava uporabnika v t.i. plain textu), za manjše spletne strani lahko sami precenite ali ga potrebujete ali ne. Vsekakor pa bo doprinesel https zaupanje v vašo spletno stran.

    Za pomoč:
    – Varna in zaupanja vredna spletna trgovina:
    http://blog.zabec.net/varna-in-zaupanja-vredna-spletna-trgovina/
    – Kateri SSL certifikat naj izberem:
    http://blog.zabec.net/kateri-ssl-certifikat-naj-izberem/
    Za pomoč pri izbiri se lahko obrnete tudi na naš podporni center: info@zabec.net
    Ponujamo vam več kot 30 različnih certifikatov: https://www.zabec.net/gostovanje/ssl-certifikati

  3. Posodobljena različica Joomle
    Ena izmed najbolj pomembnih stvari je redno posodabljanje Joomle na najnovejšo različico.
    Vendar pred vsako večjo posodobitvijo naredite backup.

    Za pomoč:
    – Joomla obvestila:
    https://www.joomla.org/announcements.html

  1. Utrdite PHP konfikuracijo
    Če potrebujete prenos dokumentov za upravljalca dokumentov, kot je napr. DOCman ali FILEman, sledečih možnosti ne nastavljajte.

    PHP directives lahko spremenite v vašem php.ini datoteki:

  • expose_php = 0 :
    s tem prikrijete katero različico PHPja uporabljate, tako napadalcem otežite delo, saj ne vedo točno katero ranljivost je najbolje izrabiti.
  • open_basedir = “/var/www/yoursite.com:/tmp/” :
    s tem ukažete PHPju, da lahko uporablja samo to mapo (privzeto je na shared strežnikih nastavljeno pravilno)
  • display_errors = 0 :
    s tem boste preprečili, da bi napadalci vedeli kje je možnost vdora v vašo stran
  • disable_functions = exec,passthru,shell_exec,system,
proc_open,proc_close,proc_terminate,popen,curl_exec,curl_multi_exec,
show_source,posix_kill,posix_getpwuid,posix_mkfifo,posix_setpgid,
posix_setsid,posix_setuid,posix_setuid,posix_uname,php_uname,syslog
    s tem onemogočite (izklopite) nevarne PHP metode, tako, da jih napadalci ne morejo uporabiti oz. škodovati vašemu sistemu.

Vir: https://www.incapsula.com/blog/10-tips-to-improve-your-joomla-website-security.html

Novosti, ki jih prinaša PHP 7

Že 11 let je minilo odkar smo dobili različico 5.0, po vseh teh letih pa smo končno dočakali večjo spremembo – PHP 7.0. je tukaj!

Kaj prinaša nova 7.0 različica?

1. Izboljšana zmogljivost

Preoblikovanje jedra, ki je je predstavil phpng RFC naredi PHP 7 skoraj tako hiter kot HHVM. Večinoma aplikacij teče na PHP 5.6, te bodo na PHP 7 tekle kar 2x hitreje.
Primerjave si lahko ogledte tukaj: http://talks.php.net/oz15#/drupalbench

Screen Shot 2016-01-12 at 14.49.57

PHP 7 lahko obdela skoraj 2x več zahtev kot 5.6, kar v pomeni, da se bo zmogljivost vaše WordPress spletne strani izboljšala za 100%.

2. Opuščanje določenih elementov

V novi različici so odstranili nekatere elemente.

  1. ASP značke ( <%, <%= and %> ) in Script značke ( <script language=”php”> ) so odstranili.
    Preverite, da uporabljate <?php.
  2. EREG podaljški in vse ereg_* funkcije so opustili že v PHP 5.3, zamenjane so z PCRE podaljškom in preg_*  funkcijo
  3. MYSQL podaljšek in mysql_* funkcije so opuščene od PHP 5.5. naprej, za direktno selitev uporabite MYSQLI podaljšek in mysqli_* funkcijo.

3. Enotna spremenljiva sintaksa/skladnja

S tem bo veliko izrazov, ki so bili do sedaj neveljavni, postalo veljavnih.

4. Usodna napaka (Fatal Error) z večimi “privzetimi” določbami

S PHP 7 boste prejele sledeče:
Fatal Error: Switch statements may only contain one default clause.

5. Napake in Izjeme (exceptions)

Obstoječe “fatal” in “recovarable” napake so bile zamenjane z Izjemami (exceptions), kar nam omogoča “loviti” napake in jih temu primerno prikazati, jih logirati ali kakorkoli drugače z njimi operirati.

Razvojna ekipa je implementirala Izjeme na način, da so kompatibilne z starejšimi aplikacijami.

Možne so sicer izjeme, katere bi lahko v starejših aplikacijah še vedno povzročile Fatal Error, s čimer bi se ustavilo izvajanje skripte. To lahko rešite da uporabite Try/Catch bloke.

6. Novosti

A. Novi operatorji
SpaceShip operatorji:
$a <=> $b

null coalesce operator:

PHP5 primer:
$a = isset($b) ? $b : “privzeta vrednost”

PHP7 primer:
$a = $b ?? “privzeta vrednost”;

B. Scalar Type Hints
Z PHP7 smo končno dobili tudi opcijo da definiramo v funkcijah in metodah parametrom privzete type hinte. (integers, float,strings, booleans)

Primer:
function primer(int $vrednost)

{
return 12 * $vrednost;
}

Če bomo deklarirali funkcijo kot primer (“5”) PHP7 ne bo vrnil nobene napake, razen če imamo vklopljen strict mode.

C. Return Type Hints

Pomembna novost PHP7 je tudi da lahko funkcijam deklariramo kaj naj bi vrnile.
https://wiki.php.net/rfc/return_types

Prišel je Ghost. Posodobite svoje linux sisteme!!

Tokrat grozi Ghost (Duh), ki prizadene večino Linux sistema.
Problem so odkrili v GNU C Library (glibc).
Glibc je zbirka odprtokodne programske opreme, ki je nujen in ključen del vsakega linux sistema.

Nekateri opozarjajo, da je Ghost tako nevaren in kritičen kot so bili v lanskem letu Heartbleed, Shellshock in Poodle.

Problem je bil najden v glibc funkciji __nss_hostname_digits_dots(), ki se sklicuje na _gethostbyname in gethostbyname2() klicni funkciji.

Ghost tako prizadane verzije glibc-2.2., glibc-2.17 in nižje.

 Kako preveriti ali imate Ghost-a v sistemu?

Če imate Dedicated strežnike ali VPSje, ki tečejo v Linuxu potem takoj posodobite zadeve!
Velja tudi za ostale:
Hitri test, če zaženete spodnjo PHP kodo na vašem Terminalu:

php -r ‘$e=”0″;for($i=0;$i<2500;$i++){$e=”0$e”;} gethostbyname($e);’
Segmentation fault

in dobite Segmentation fault, to pomeni, da je vaš strežnik ranljiv.

Kako se zaščititi?

Debian 7, Red Hat Enterprise Linux 6 in 7, CentOS 6 in 7 in Ubuntu 12.04 so že izdali programske posodobitve. Izvedite posodobitev glibc in ponovno zgradite storitve vezanje nanj.

Za več podrobnosti se lahko obrntete na zabec.net podporo preko info@zabec.net.

Več:
http://thehackernews.com/2015/01/ghost-linux-security-vulnerability_29.html
http://thehackernews.com/2015/01/ghost-linux-security-vulnerability27.html
http://blog.sucuri.net/2015/01/critical-ghost-vulnerability-released.html