PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/home/sharklogisticsinc.com/www/wp-content/plugins/security-ninja/
Upload File :
Current File : //home/sharklogisticsinc.com/www/wp-content/plugins/security-ninja/sn-tests-description.php
<?php
/*
 * Security Ninja
 * Test descriptions and help
 * (c) 2011. - 2018. Web factory Ltd
 */
?>

    <div class="sn_test_details" id="ver_check"><div class="test_name">Check if WordPress core is up to date</div>
      <div class="test_description"><p>Keeping the WordPress core up to date is one of the most important aspects of site security. If vulnerabilities are discovered in WordPress and a new version is released to address the issue, the information required to exploit the vulnerability is definitely in the public domain. This makes old versions more open to attacks, and is one of the primary reasons you should always keep WordPress up to date.</p>
      <p>Thanks to automatic updates updating is very easy. Just go to <a target="_blank" href="update-core.php">Dashboard - Updates</a> and click "Upgrade". <b>Remember</b> - always backup your files and database before upgrading!</p></div>
    </div>

    <div class="sn_test_details" id="core_updates_check"><div class="test_name">Check if automatic core updates are enabled</div>
      <div class="test_description"><p>Unless you're running a highly customized WordPress site wich requires rigorous testing of all updates we recommend having automatic minor core updates enabled. These are usually security fixes that don't alter WP in any significant way and should be applied as soon as WP releases them.</p>
      <p>Updates can be disabled via constants in <i>wp-config.php</i> or by a plugin. For details please see <a href="http://codex.wordpress.org/Configuring_Automatic_Background_Updates" target="_blank">WP Codex</a>.</p></div>
    </div>

    <div class="sn_test_details" id="plugins_ver_check"><div class="test_name">Check if plugins are up to date</div>
      <div class="test_description"><p>As with the WordPress core, keeping plugins up to date is one of the most important and easiest ways to keep your site secure. Since most plugins are free and therefore their code is available to anyone, having the latest version will ensure you're not prone to attacks based on known vulnerabilities.</p>
      <p>If you downloaded a plugin from the official WP repository you can easily check if there are any updates available, and update it by opening <a target="_blank" href="update-core.php">Dashboard - Updates</a>. If you bought the plugin from somewhere else check the item's support on instructions how to upgrade manually. <b>Remember</b> - always backup your files and database before upgrading!</p></div>
    </div>

    <div class="sn_test_details" id="deactivated_plugins"><div class="test_name">Check if there are any deactivated plugins</div>
      <div class="test_description"><p>If you're not using a plugin remove it from the WP <i>plugins</i> folder. It's that simple. There's no reason to keep it there and in case the code is malicious or it has some vulnerabilities it can still be exploited by a hacker regardless of the fact the plugin is not active.</p>
      <p>Open <a target="_blank" href="plugins.php">plugins</a> and simply delete all plugins that are not active. Or login via FTP and move them to some folder that's not <i>/wp-content/plugins/</i>.</p></div>
    </div>

    <div class="sn_test_details" id="themes_ver_check"><div class="test_name">Check if themes are up to date</div>
      <div class="test_description"><p>As with the WordPress core, keeping the themes up to date is one of the most important and easiest ways to keep your site secure. Since most themes are free and therefore their code is available to anyone having the latest version will ensure you're not prone to attacks based on known vulnerabilities. Also, having the latest version will ensure your theme is compatible with the latest version of WP.</p>
      <p>If you downloaded a theme from the official WP repository you can easily check if there are any updates available, and upgrade it by opening <a target="_blank" href="themes.php">Appearance - Themes</a>. If you bought the theme from a theme shop check their support and upgrade manually. <b>Remember</b> - always backup your files and database before upgrading!</p></div>
    </div>

    <div class="sn_test_details" id="deactivated_themes"><div class="test_name">Check if there are any deactivated themes</div>
      <div class="test_description"><p>If you're not using a theme remove it from the WP <i>themes</i> folder. It's that simple. There's no reason to keep it there and in case the code is malicious or it has some vulnerabilities it can still be exploited by a hacker regardless of the fact the theme is not active.</p>
      <p>Open <a target="_blank" href="themes.php">Appearance - Themes</a> and simply delete all themes that are not active. Or login via FTP and move them to some folder that's not <i>/wp-content/themes/</i>.</p></div>
    </div>

    <div class="sn_test_details" id="wp_header_meta"><div class="test_name">Check if full WP version info is revealed in page's meta data</div>
      <div class="test_description"><p>You should be proud that your site is powered by WordPress and there's no need to hide that information. However disclosing the full WP version info in the default location (page header meta) is not wise. People with bad intentions can easily use Google to find site's that use a specific version of WordPress and target them with (0-day) exploits.</p>
      <p>Place the following code in your theme's <i>functions.php</i> file in order to remove the header meta version info:</p>
      <pre>function remove_version() {
  return '';
}
add_filter('the_generator', 'remove_version');</pre>
      </div>
    </div>

    <div class="sn_test_details" id="readme_check"><div class="test_name">Check if WordPress <i>readme.html</i> file is accessible via HTTP on the default location</div>
      <div class="test_description"><p>As mentioned in the previous test - you should be proud that your site is powered by WordPress but also hide the exact version you're using. <i>readme.html</i> contains WP version info and if left on the default location (WP root) attackers can easily find out your WP version.</p>
      <p>This is a very easy problem to solve. Rename the file to something more unique like "readme-876.html"; delete it; move it to another location or chmod it so that it's not accessible via HTTP.</p>
      </div>
    </div>

    <div class="sn_test_details" id="php_headers"><div class="test_name">Check if server response headers contain detailed PHP version info</div>
      <div class="test_description"><p>As with the WordPress version it's not wise to disclose the exact PHP version you're using because it makes the job of attacking your site much easier. This issue is not directly WP related but it definitely affects your site.</p>
      <p>You'll most probably have to ask your hosting company to configure the HTTP server not to show PHP version info but you can also try adding these directives to the <i>.htacces</i> file: </p>
      <pre>&lt;IfModule mod_headers.c&gt;
  Header unset X-Powered-By
  Header unset Server
&lt;/IfModule&gt;</pre>
      </div>
    </div>

    <div class="sn_test_details" id="user_exists"><div class="test_name">Check if user with username "admin" exists</div>
      <div class="test_description"><p>If someone tries to guess your username and password or tries a brute-force attack they'll most probably start with username "admin". This is the default username used by too many sites and should be removed.</p>
      <p><a target="_blank" href="user-new.php">Create a new user</a> and assign him the "administrator" role. Try not to use usernames like: "root", "god", "null" or similar ones. Once you have the new user created delete the "admin" one and assign all post/pages he may have created to the new user.</p>
      </div>
    </div>

    <div class="sn_test_details" id="check_failed_login_info"><div class="test_name">Check for display of unnecessary information on failed login attempts</div>
      <div class="test_description"><p>By default on failed login attempts WordPress will tell you whether username or password is wrong. An attacker can use that to find out which usernames are active on your system and then use brute-force methods to hack the password.</p>
      <p>Solution to this problem is simple. Whether user enters wrong username or wrong password we always tell him "wrong username or password" so that he doesn't know which of the two is wrong. Open your theme's <i>functions.php</i> file and copy/paste the following code:</p>
      <pre>function wrong_login() {
  return 'Wrong username or password.';
}
add_filter('login_errors', 'wrong_login');</pre>
      </div>
    </div>

    <div class="sn_test_details" id="salt_keys_check"><div class="test_name">Check if all security keys and salts have proper values</div>
      <div class="test_description"><p>Security keys are used to ensure better encryption of information stored in the user's cookies and hashed passwords. They make your site harder to hack and access harder to crack by adding random elements to the password. You don't have to remember these keys. In fact once you set them you'll never see them again. Therefore there's no excuse for not setting them properly.</p>
      <p>Security keys (there are eight) are defined in <i>wp-config.php</i> as constants on lines #49-56. They should be as unique and as long as possible. WordPress made a <a target="_blank" href="https://api.wordpress.org/secret-key/1.1/salt/">great script</a> which helps you generate those strings. Please use it! After the script generates strings those 8 lines of code should look something like this:</p>
      <pre>define('AUTH_KEY',         '}D4@p&lt;0VFKb*pdhM8c&lt;bb:qB%Fr8:- dc}U(,[K?hobrzsn*:r?,e^/eHsm6nHls');
define('SECURE_AUTH_KEY',  'M2wEPuf7.%FWW1xvy]ar&amp;vy3gj,:1Go&gt;qs7d_N)nX}O[-(+AaDsiPbvAOdLG~dt}');
define('LOGGED_IN_KEY',    'iA#+3)Xhf0E*oyN1A4#:0wVp|d&lt;F-rQQ Sf_HNMk,rVj,F,GdKF|b-:xBEM,y(,f');
define('NONCE_KEY',        'ctGmyOSSfm1-WR/V:J6[;Zh|?a$slsWs_9BIKcM[}uh~+C|R}ylW4cU%D tIOG=d');
define('AUTH_SALT',        '|@tYo .T&amp;-{wMmP&gt;ggj4p{,HKs!&gt;vsUXz/aPDlZ=1.D54m+#1xyt+%w)3r&amp;j]r?:');
define('SECURE_AUTH_SALT', '`^mxb~AvK*Agn+h&gt;U!0GL2*2|R+HHyY%h1b%Aoo,Jy|M{}TP`mSTt&lt;fcm=O9`=bA');
define('LOGGED_IN_SALT',   'Ow||n$:: HWM5%H7k+MW7{!Z[Z|G-UJZ6Pp8;Id^&lt;lK-&amp;W+}Q?wHw!xlp2g(1% w');
define('NONCE_SALT',       'IoLWhDF-d&lt;&gt;`u}R4oEe5kXf+)&lt;.}Ib?BPE&lt;C9R=NQivhZ|8k^b@LhkpuqojnzdVI');
</pre>

<p><b>Warning</b>: do NOT use the keys above. They are just an example, publically available and therefore not safe. Generate your own ones.</p>
      </div>
    </div>

    <div class="sn_test_details" id="salt_keys_age_check"><div class="test_name">Check if security keys and salts have been updated in the last 3 months</div>
      <div class="test_description"><p>It's recommended to change the security keys and salts once in a while. The process will invalidate all existing cookies. This does mean that all users will have to login again. It's a minor inconvenience that will ensure nobody can login with an old or stolen cookie.
      </p>
      <p>To edit the keys open <i>wp-config.php</i>, <a target="_blank" href="https://api.wordpress.org/secret-key/1.1/salt/">generate new keys</a> and copy/paste them to overwrite the old ones.</p>
      </div>
    </div>

    <div class="sn_test_details" id="db_password_check"><div class="test_name">Test the strength of WordPress database password</div>
      <div class="test_description"><p>There is no such thing as an "unimportant password"! The same goes for WordPress database password. Although most servers are configured so that the database can't be accessed from other hosts (or from outside of the local network) that doesn't mean your database passsword should be "12345". Choose a proper password, at least 8 characters long with a combination of letters, numbers and special characters.</p>

      <p>To change the database password open cPanel, Plesk or any other hosting control panel you have. Find the option to change the database password and make the new password strong enough. If you can't find that option or you're uncomfortable changing it contact your hosting provider. After the password is changed open wp<i>-config.php</i> and change the password on line #29:</p>
      <pre>/** MySQL database password */
define('DB_PASSWORD', 'YOUR_NEW_DB_PASSWORD_GOES_HERE');</pre>
      </div>
    </div>

    <div class="sn_test_details" id="db_table_prefix_check"><div class="test_name">Check if database table prefix is the default one (<i>wp_</i>)</div>
      <div class="test_description"><p>Knowing the names of your database tables can help an attacker dump the table's data and get to sensitive information like password hashes. Since WP table names are predefined the only way you can change table names is by using a unique prefix. One that's different from "wp_" or any similar variation such as "wordpress_".</p>
      <p>If you're doing a fresh installation defining a unique table prefix is easy. Open <i>wp-config.php</i> and go to line #61 where the table prefix is defined. Enter something unique like "frog99_" and install WP.</p>
      <p>If you already have WP site running and want to change the table prefix things are a bit more complicated and you should only do the change if you're comfortable doing some changes to your DB data via phpMyAdmin or a similar GUI. Detailed step-by-step instructions can be found on <a target="_blank" href="https://wploop.com/change-database-prefix/">WP Loop</a>. <b>Remember</b> - always backup your files and database before making any changes to the database!</p>
      </div>
    </div>

    <div class="sn_test_details" id="debug_check"><div class="test_name">Check if site debug mode is enabled</div>
      <div class="test_description"><p>Having any kind of debug mode (general WP debug mode in this case) or error reporting mode enabled on a production site is extremely bad. Not only will it slow down your site, confuse your visitors with weird messages it will also give the potential attacker valuable information about your system.</p>
      <p>General WordPress debugging mode is enabled/disabled by a constant defined in <i>wp-config.php</i>. Open that file and look for a line similar to:</p>
      <pre>define('WP_DEBUG', true);</pre>
      <p>Comment it out, delete it or replace with the following to disable debugging:</p>
      <pre>define('WP_DEBUG', false);</pre>
      <p>If your blog still fails on this test after you made the changes it means some plugin is enabling debug mode. Disable plugins one by one to find out which one is doing it.</p>
      </div>
    </div>

    <div class="sn_test_details" id="db_debug_check"><div class="test_name">Check if database debug mode is enabled</div>
      <div class="test_description"><p>Having any kind of debug mode (WP database debug mode in this case) or error reporting mode enabled on a production server is extremely bad. Not only will it slow down your site, confuse your visitors with weird messages it will also give the potential attacker valuable information about your system.</p>
      <p>WordPress DB debugging mode is enabled with the following command:</p>
      <pre>$wpdb-&gt;show_errors();</pre>
      <p>In most cases this debugging mode is enabled by plugins so the only way to solve the problem is to disable plugins one by one and find out which one enabled debugging.</p>
      </div>
    </div>

    <div class="sn_test_details" id="script_debug_check"><div class="test_name">Check if JavaScript debug mode is enabled</div>
      <div class="test_description"><p>Having any kind of debug mode (WP JavaScript debug mode in this case) or error reporting mode enabled on a production server is extremely bad. Not only will it slow down your site, confuse your visitors with weird messages it will also give the potential attacker valuable information about your system.</p>
      <p>WordPress JavaScript debugging mode is enabled/disabled by a constant defined in <i>wp-config.php</i> open your config file and look for a line similar to:</p>
      <pre>define('SCRIPT_DEBUG', true);</pre>
      <p>Comment it out, delete it or replace with the following to disable debugging:</p>
      <pre>define('SCRIPT_DEBUG', false);</pre>
      <p>If your blog still fails on this test after you made the change it means some plugin is enabling debug mode. Disable plugins one by one to find out which one is doing it.</p>
      </div>
    </div>

    <div class="sn_test_details" id="display_errors_check"><div class="test_name">Check if <i>display_errors</i> PHP directive is turned off</div>
      <div class="test_description"><p>Displaying any kind of debug info or similar information is extremely bad. If any PHP errors happen on your site they should be logged in a safe place and not displayed to visitors or potential attackers.</p>
      <p>Open <i>wp-config.php</i> and place the following code just above the <i>require_once</i> function at the end of the file:</p>
      <pre>ini_set('display_errors', 0);</pre>
      <p>If that doesn't work add the following line to your <i>.htaccess</i> file:</p>
      <pre>php_flag display_errors Off</pre>
      <p>If that fails as well, contact your hosting provider or try disabling plugins, one by one to find out which one enabled error displaying.</p>
      </div>
    </div>

    <div class="sn_test_details" id="blog_site_url_check"><div class="test_name">Check if WordPress installation address is the same as the site address</div>
      <div class="test_description"><p>Moving WP core files to any non-standard folder will make your site less vulnerable to automated attacks. Most scripts that script kiddies use rely on default file paths. If your blog is setup on <i>www.site.com</i> you can put WP files in ie: <i>/var/www/vhosts/site.com/www/my-app/</i> instead of the obvious <i>/var/www/vhosts/site.com/www/</i>.</p>
      <p>Site and WP address can easily be changed in <a target="_blank" href="options-general.php">Options - General</a>. Before doing so please watch this detailed <a target="_blank" href="http://www.youtube.com/watch?v=PFfvBJVtzqA">video tutorial</a> which describes what other steps are necessary to move your WP core files to another location.</p>
      </div>
    </div>

    <div class="sn_test_details" id="config_chmod"><div class="test_name">Check if <i>wp-config.php</i> file has the right permissions (chmod) set</div>
      <div class="test_description"><p><i>wp-config.php</i> file contains sensitive information (database username and password) in plain text and should not be accessible to anyone except you and WP (or the web server to be more precise).</p>
      <p>What's the best chmod for your <i>wp-config.php</i> depends on the way your server is configured but there are some general guidelines you can follow. If you're hosting on a Windows based server ignore all of the following.</p>
      <ul>
      <li>try setting chmod to 0400 or 0440 and if the site works normally that's the best one to use</li>
      <li>"other" users should have no privileges on the file so set the last octal digit to zero</li>
      <li>"group" users shouldn't have any access right as well unless Apache falls under that category, so set group rights to 0 or 4</li>
      </ul>
      </div>
    </div>

    <div class="sn_test_details" id="install_file_check"><div class="test_name">Check if <i>install.php</i> file is accessible via HTTP on the default location</div>
      <div class="test_description"><p>There have already been a couple of security issues regarding the <i>install.php</i> file. Once you install WP this file becomes useless and there's no reason to keep it in the default location and accessible via HTTP.</p>
      <p>This is a very easy problem to solve. Rename <i>install.php</i> (you'll find it in the <i>wp-admin</i> folder) to something more unique like "install-876.php"; delete it; move it to another location or chmod it so it's not accessible via HTTP.</p>
      </div>
    </div>

    <div class="sn_test_details" id="upgrade_file_check"><div class="test_name">Check if <i>upgrade.php</i> file is accessible via HTTP on the default location</div>
      <div class="test_description"><p>There have already been a couple of security issues regarding this file. Besides the security issue it's never a good idea to let people run any database upgrade scripts without your knowledge. This is a useful file but it should not be accessible on the default location.</p>
      <p>This is a very easy problem to solve. Rename <i>upgrade.php</i> (you'll find it in the <i>wp-admin</i> folder) to something more unique like "upgrade-876.php"; move it to another location or chmod it so it's not accessible via HTTP. Don't delete it! You may need it later on.</p>
      </div>
    </div>

    <div class="sn_test_details" id="bruteforce_login"><div class="test_name">Check users' password strength with a brute-force attack</div>
      <div class="test_description"><p>By using a dictionary of 600 most commonly used passwords Security Ninja does a brute-force attach on your site's user accounts. Any accounts that fail this test pose a serious security issue for the site because they are using passwords like "12345", "qwerty" or "god" which anyone can guess within minutes. Alert those users or change their passwords immediately.</p>
      <p>Please note that Security Ninja (by default) tests only the first 5 users (starting from administrators). This limit is imposed to be sure we don't temporarily kill the DB while doing the brute-force attack.<br>
      If you want to test more or all users open <i>sn-test.php</i> and change the line #763 which defines this limit.</p>
      <pre>$max_users_attack = 5;</pre>
      </div>
    </div>

    <div class="sn_test_details" id="anyone_can_register"><div class="test_name">Check if "anyone can register" option is enabled</div>
      <div class="test_description"><p>Unless you're running some kind of community based site this option needs to be disabled. Although it only provides the attacker limited access to your backend it's enough to start exploiting other security issues.</p>
      <p>Go to <a target="_blank" href="options-general.php">Options - General</a> and uncheck the "Membership - anyone can register" checkbox.</p>
      </div>
    </div>

    <div class="sn_test_details" id="register_globals_check"><div class="test_name">Check if <i>register_globals</i> PHP directive is turned off</div>
      <div class="test_description"><p>This is one of the biggest security issues you can have on your site! If your hosting company has this this directive enabled by default switch to another company immediately! <a target="_blank" href="http://php.net/manual/en/security.globals.php">PHP manual</a> has more info why this is so dangerous.</p>
      <p>If you have access to php.ini file locate</p>
      <pre>register_globals = on</pre>
      <p>and change it to:</p>
      <pre>register_globals = off</pre>
      <p>Alternatively open <i>.htaccess</i> and put this directive into it:</p>
      <pre>php_flag register_globals off</pre>
      <p>If you're still unable to disable <i>register_globals</i> contact a security professional.</p>
      </div>
    </div>

    <div class="sn_test_details" id="safe_mode_check"><div class="test_name">Check if safe mode is disabled</div>
      <div class="test_description"><p>PHP safe mode is an attempt to solve the shared-server security problem. It is architecturally incorrect to try to solve this problem at the PHP level, but since the alternatives at the web server and OS levels aren't very realistic, many people, especially ISP's, use safe mode for now. If your hosting company still uses safe mode it might be a good idea to switch. This feature is deprecated in new version of PHP (5.3) which is also old by now.</p>
      <p>If you have access to php.ini file locate</p>
      <pre>safe_mode = on</pre>
      <p>and change it to:</p>
      <pre>safe_mode = off</pre>
      </div>
    </div>

    <div class="sn_test_details" id="expose_php_check"><div class="test_name">Check if <i>expose_php</i> PHP directive is turned off</div>
      <div class="test_description"><p>It's not wise to disclose the exact PHP version you're using because it makes the job of attacking your site much easier.</p>
      <p>If you have access to php.ini file locate</p>
      <pre>expose_php = on</pre>
      <p>and change it to:</p>
      <pre>expose_php = off</pre>
      </div>
    </div>

    <div class="sn_test_details" id="allow_url_include_check"><div class="test_name">Check if <i>allow_url_include</i> PHP directive is turned off</div>
      <div class="test_description"><p>Having this PHP directive enabled will leave your site exposed to cross-site attacks (XSS). There's absolutely no valid reason to enable this directive and using any PHP code that requires it is very risky.</p>
      <p>If you have access to php.ini file locate</p>
      <pre>allow_url_include = on</pre>
      <p>and change it to:</p>
      <pre>allow_url_include = off</pre>
      <p>If you're still unable to disable <i>allow_url_include</i> contact a security professional.</p>
      </div>
    </div>

    <div class="sn_test_details" id="file_editor"><div class="test_name">Check if plugins/themes file editor is enabled</div>
      <div class="test_description"><p>Plugins and themes file editor is a very convenient tool because it enables you to make quick changes without the need to use FTP. Unfortunately it's also a security issue because it not only shows PHP source but it also enables the attacker to inject malicious code in your site if he manages to gain access to the admin.</p>
      <p>Editor can easily be disabled by placing the following code in theme's <i>functions.php</i> file.</p>
      <pre>define('DISALLOW_FILE_EDIT', true);</pre>
      </div>
    </div>

<?php
  $tmp = wp_upload_dir();
?>
      <div class="sn_test_details" id="uploads_browsable"><div class="test_name">Check if <i>uploads</i> folder is browsable</div>
      <div class="test_description"><p>Allowing anyone to view all files in the <a href="<?php echo $tmp['baseurl']; ?>" target="_blank">uploads folder</a> just by point the browser to it will allow them to easily download all your uploaded files.
      It's a security and a copyright issue.</p>
      <p>To fix the problem open <i>.htaccess</i> and add this directive into it:</p>
      <pre>Options -Indexes</pre>
      </div>
    </div>

    <div class="sn_test_details" id="id1_user_check"><div class="test_name">Check if user with ID "1" exists</div>
      <div class="test_description"><p>Although technically not a security issue having a user (which is in 99% cases the admin) with the ID 1 can help an attacker in some circumstances.</p>
      <p>Fixing is easy; create a new user with the same privileges. Then delete the old one with ID 1 and tell WP to transfer all of his content to the new user.</p>
      </div>
    </div>

    <div class="sn_test_details" id="wlw_meta"><div class="test_name">Check if Windows Live Writer link is present in pages' header data</div>
      <div class="test_description"><p>If you're not using Windows Live Writer there's really no valid reason to have it's link in the page header thus telling the whole world you're using WordPress.</p>
      <p>Fixing is very easy. Open your theme's <i>functions.php</i> file and add the following line:</p>
      <pre>remove_action('wp_head', 'wlwmanifest_link');</pre>
      </div>
    </div>

    <div class="sn_test_details" id="config_location"><div class="test_name">Check if <i>wp-config.php</i> is present on the default location</div>
      <div class="test_description"><p>If someone gains FTP access to your server this will not save you but it certainly can't hurt to obfuscate your installation a bit.</p>
      <p>In order to fix this issue you have to move wp-config.php one level up in the folder structure. If the original location was:</p>
      <pre>/home/www/wp-config.php</pre>
      <p>move the file to:</p>
      <pre>/home/wp-config.php</pre>
      <p>Or for instance from</p>
      <pre>/home/www/my-blog/wp-config.php</pre>
      <p>to:</p>
      <pre>/home/www/wp-config.php</pre>
      </div>
    </div>

    <div class="sn_test_details" id="mysql_external"><div class="test_name">Check if MySQL server is connectable from outside of the local network with the WP account</div>
      <div class="test_description"><p>Since MySQL username and password are written in plain-text in <i>wp-config.php</i> it's advisable not to allow any client to use that account unless he's connecting to MySQL from your server (localhost). Allowing him to connect from any host will make some attacks much easier.</p>
      <p>Fixing this issue involves changing the MySQL user or server config and it's not something that can be described in a few words so we advise asking someone to fix it for you. If you're really eager to do it we suggest creating a new MySQL user and under "hostname" enter "localhost". Set other properties such as username and password to your own liking and, of course, update <i>wp-config.php</i> with the new user details.</p>
      </div>
    </div>

    <div class="sn_test_details" id="rpc_meta"><div class="test_name">Check if EditURI (XML-RPC) link is present in pages' header data</div>
      <div class="test_description"><p>If you're not using any Really Simple Discovery services such as pingbacks there's no need to advertise that endpoint (link) in the header. Please note that for most sites this is not a security issue because they "want to be discovered" but if you want to hide the fact that you're using WP this is the way to go.</p>
      <p>Open your theme's <i>functions.php</i> file and add the following line:</p>
      <pre>remove_action('wp_head', 'rsd_link');</pre>
      <p>Additionally, to completely disable XML-RPC functions put the following code in <i>wp-config.php</i> just below the  <i>require_once(ABSPATH . 'wp-settings.php');</i> line:</p>
      <pre>add_filter('xmlrpc_enabled', '__return_false');</pre>
      <p>And also add this code to <i>.htaccess</i> to prevent DDoS attacks:
      <pre>&lt;Files xmlrpc.php&gt;
  Order Deny,Allow
  Deny from all
&lt;/Files&gt;</pre>
      </div>
    </div>

    <div class="sn_test_details" id="tim_thumb"><div class="test_name">Check if Timthumb script is used in the active theme</div>
      <div class="test_description"><p>We don't recommend using the Timthumb script to manipulate images. Apart from the security issues some versions had, WordPress has its own built-in functions for manipulating images that should be used instead.<br>
      Contact the theme developer and have him update the theme. It's unlikely you'll be able to fix this issue yourself.</p>
      </div>
    </div>

    <div class="sn_test_details" id="shellshock_6271"><div class="test_name">Check if the server is vulnerable to the Shellshock bug #6271</div>
      <div class="test_description"><p>Shellshock, also known as Bashdoor, is a family of security bugs in the widely used Unix Bash shell. Web servers use Bash to process certain commands, allowing an attacker to cause vulnerable versions of Bash to execute arbitrary commands. This can allow an attacker to gain unauthorized access to the system. Although this bug is not related to WordPress directly it's very problematic. <a target="_blank" href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271">More details.</a><br>
      Contact your server administrator and update the server's Bash shell immediately. </p>
      </div>
    </div>

    <div class="sn_test_details" id="shellshock_7169"><div class="test_name">Check if the server is vulnerable to the Shellshock bug #7169</div>
      <div class="test_description"><p>Shellshock, also known as Bashdoor, is a family of security bugs in the widely used Unix Bash shell. Web servers use Bash to process certain commands, allowing an attacker to cause vulnerable versions of Bash to execute arbitrary commands. This can allow an attacker to gain unauthorized access to the system. Although this bug is not related to WordPress directly it's very problematic. <a target="_blank" href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7169">More details.</a><br>
      Contact your server administrator and update the server's Bash shell immediately. </p>
      </div>
    </div>

    <div class="sn_test_details" id="admin_ssl"><div class="test_name">Check if admin interface is delivered via SSL</div>
      <div class="test_description"><p>You should run your entire site via HTTPS, it makes it more secure and <a target="_blank" href="https://webmasters.googleblog.com/2014/08/https-as-ranking-signal.html">Google will love it</a> too. If for some reason you don't want to run the entire, at least make the admin secure. Some hosting companies charge a lot for SSL certificates but you can get free ones on <a target="_blank" href="https://letsencrypt.org/">Let's Encrypt</a>. If you don't have an SSL certificate you can still try and run the admin via HTTPS. Depending on how your server is configured, it might work. But getting a valid certificate is definitely a smarter thing to do.</p>
      <p>To enable SSL in admin open <i>wp-config.php</i> and add the following line to it:</p>
      <pre>define('FORCE_SSL_ADMIN', true);</pre>
      </div>
    </div>

    <div class="sn_test_details" id="mysql_permissions"><div class="test_name">Check if MySQL account used by WordPress has too many permissions</div>
      <div class="test_description"><p>If an attacker gains access to your <i>wp-config.php</i> file and gets the MySQL username and password, he'll be able to login to that database and do whatever that account allows him to. That's why it's important to keep the account's privileges to a bare minimum. For instance, if you're not installing any new plugins or updating WP that account doesn't need the CREATE or DROP table privileges.<br>For regular, day-to-day usage these are the recommended privileges: SELECT, INSERT, UPDATE, and DELETE. When updating WP you'll also need the ALTER one. MySQL account privileges can be adjusted in cPanel, but we recommend getting a professional to do it if you've never done this kind of modifications before.</p>
      </div>
    </div>

    <div class="sn_test_details" id="old_plugins"><div class="test_name">Check if active plugins have been updated in the last 12 months</div>
      <div class="test_description"><p>Plugins that have not been updated in over a year and are potentially abandoned by their developers can pose a big security issue. Hackers can exploit known security vulnerabilities that have been open a long time since the plugin is not patched/updated. Be very careful when using such old plugins. A more in-depth look into such plugins is available on <a href="https://wploop.com/old-outdated-wordpress-plugins/" target="_blank">WP Loop</a></p>
      <p>There's not much you can do to fix the problem except finding a similar plugin that's properly maintained. If you are truly dependant on that one plugin, we suggest you contact the author and see if he's willing to update it or hire someone to do that for you.</p>
      </div>
    </div>

    <div class="sn_test_details" id="incompatible_plugins"><div class="test_name">Check if active plugins are compatible with your version of WP</div>
      <div class="test_description"><p>Plugins that are incompatible with your version of WordPress can cause unpredictable behavior, bring the site down and just in general cause problems. In most cases, incompatibilities are minor and can be ignored, but such plugins are often old and haven't been updated in years. We suggest using plugins that have been tried and tested with the latest version of WordPress that you should be using too.</p>
      <p>There's not much you can do to fix the problem except finding a similar plugin or contacting the author and asking to update it.</p>
      </div>
    </div>

    <div class="sn_test_details" id="php_ver"><div class="test_name">Check the PHP version</div>
      <div class="test_description"><p>Using an old version of PHP makes your site slow and prone to hacker attacks due to known vulnerabilities that exist in no-longer maintained versions of PHP. Really nothing good can come out of using PHP older than 5.6. That's really the bare minimum you should be running.</p>
      <p>Immediately email your hosting company and tell them you'd like to switch to PHP v7. If they say they can't facilitate that request, you'll have to move your site to a decent hosting company. We use ourselves and can highly recommend <a href="https://www.siteground.com/go/securityninja" target="_blank">SitegGround</a>.</p>
      </div>
    </div>

    <div class="sn_test_details" id="mysql_ver"><div class="test_name">Check the MySQL version</div>
      <div class="test_description"><p>Using an old version of MySQL makes your site slow and prone to hacker attacks due to known vulnerabilities that exist in no-longer maintained versions of MySQL.</p>
      <p>Imediatelly email your hosting company and tell them you'd like to switch to a newer version of MySQL. If they say they can't do that you'll have to move your site to a decent hosting company. We use ourselves and can highly recommend <a href="https://www.siteground.com/go/securityninja" target="_blank">SitegGround</a>.</p>
      </div>
    </div>

    <div class="sn_test_details" id="usernames_enumeration"><div class="test_name">Usernames enumeration via user IDs</div>
      <div class="test_description"><p>Usernames (unlike passwords) are not secret. By knowing someone's username, you can't login to their account. You need the password too. However, by knowing the username, you are one step closer to logging in, using the username to brute-force the password or to gain access in some similar way. That's why it's advisable to keep the list of usernames a secret. At least to some degree. By default, by accessing <i>siteurl.com/?author={id}</i> and looping through IDs from 1 you can get a list of usernames because WP will redirect you to <i>siteurl.com/author/user/</i> if the ID exists in the system.</p>

      <p>To fix this issue add the following lines to your <i>.htaccess</i> file:</p>
      <pre>RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{QUERY_STRING} ^author=\d+ [NC,OR]
RewriteCond %{QUERY_STRING} ^author=\{num
RewriteRule ^ - [L,R=403]</pre>
      </div>
    </div>