Ultimate PHP Security Best Practices

php security guide

koska PHP on selkäranka lähes jokaiselle verkkosivustolle, siksi PHP Securityä ei pidä pitää vähäpätöisenä hinnalla millä hyvänsä. PHP: n kehittäjillä on kuitenkin etuoikeus välttää yleisiä uhkia, kuten ristipyyntöjen väärentämistä, SQL-injektioita ja tietojen peukalointia. Ja kaikki tämä on kätevä avulla PHP sisäänrakennettu turvaominaisuuksia, jotka helpottavat kehittäjille suojata verkkosivuilla.

PHP: n sanotaan olevan tehokkain palvelinpuolen kieli, PHP hyödyntää 80 prosenttia maailman verkosta, jossa on top 10 miljoonaa verkkotunnusta. Tästä syystä itse, se on ymmärtää, että PHP auttaa sinua suojaamaan hyökkääjiä.

verkkosovellusten turvaaminen kaikenlaisilta väärennetyiltä hyökkäysyrityksiltä on web-kehittäjän perimmäinen velvollisuus. Sinun pitäisi rakentaa web-sovellukset suojaava tarpeeksi ei ole tietoturvaongelmia tai porsaanreikiä.

PHP on maailman käytetyin palvelinpuolen web-ohjelmointikieli. Eri PHP-sovellukset jakavat eri osia koodistaan ja skripteistään muiden verkkosovellusten kanssa. Jos jaettu koodinpätkä havaitaan haavoittuvaksi, kaikki kyseistä jaettua koodinpätkää käyttävät sovellukset joutuvat vaaraan ja niitä pidetään haavoittuvaisina.

Pidä sovellukset turvassa pilvessä

Cloudways tarjoaa 2FA: n, ilmaisen SSL: n ja kehittyneempiä suojausominaisuuksia hallituissa palvelimissa, jotka pitävät sovelluksesi turvassa.

PHP on eniten kritisoitu skriptauskieli tietoturvan suhteen. Suuri osa kehittäjistä ja LAADUNVARMISTUSASIANTUNTIJOISTA on sitä mieltä, että PHP: llä ei ole vankkaa tekniikkaa sovellusten turvaamiseksi. Tuomio on jonkin verran myös siksi, että PHP on vanhin ja laajalti käytetty kieli web app development. Mutta jo pitkään, koska PHP 5.6, Emme ole nähneet mitään merkittäviä päivityksiä koskien turvallisuutta ja siten kieli kohtaa joitakin turvallisuuskysymyksiä.

kuinka turvallinen on PHP

PHP on yhtä turvallinen kuin mikä tahansa muukin pääkieli. PHP on yhtä turvallinen kuin mikä tahansa merkittävä palvelinpuolen kieli. Viime vuosina käyttöön otettujen uusien PHP-puitteiden ja työkalujen ansiosta huipputurvallisuutta on nyt helpompi hallita kuin koskaan.

jos teemme vertailun PHP on tasaisesti varmistettu. Rails, Java, Javascript, ja muut kielet, kaikki on ollut niiden haavoittuvuuksia vuosien varrella. ”Jos löydät kielen, jolla ei ole ollut jonkin muodon tai muodon haavoittuvuutta, voit kirjoittaa suojattua koodia PHP: ssä erinomaisesti.

PHP CMS: n tietoturvaongelmat

Suositut CMS: t kuten WordPress, Joomla, Magento ja Drupal on rakennettu PHP: hen ja Sucurin mukaan suurin osa PHP CMS: n haavoittuvuuksista tuli ilmi vuoden aikana 2017:

  • WordPress – tietoturvaongelmat nousivat vuoden 2016 Q3: n 74 prosentista 83 prosenttiin vuonna 2017.
  • Joomla-turvallisuuskysymykset ovat pudonneet vuoden 2016 Q3: n 17 prosentista 13,1 prosenttiin vuonna 2017.
  • Magenton turvallisuuskysymykset nousivat niukasti vuoden 2016 Q3: n 6 prosentista 6,5 prosenttiin vuonna 2017.
  • Drupal-turvallisuusongelmat laskivat hieman vuoden 2016 Q3: n 2 prosentista 1,6 prosenttiin vuonna 2017.

CMS-tartuntojen vertailu

cms-tartuntavertailu

nykytilanne ei ole tarpeeksi hyvä, mutta kiitos avoimen lähdekoodin tukijoiden, jotka yrittävät kovasti voittaa ongelmat ja olemme nähneet joitakin rajuja muutoksia PHP: ssä viime aikoina. PHP 7.x lanseerattiin viime vuonna erilaisin päivityksin ja korjauksin. Parasta PHP 7: ssä.x liittyy tietoturvapäivityksiin, jotka todella uudistivat kielen tietoturvaprotokollaa.

mitä tämä PHP Security Tutorial Sisältää?

olen työskennellyt PHP: n turvallisuus-ja suorituskykykysymysten parissa hyvin pitkään, ollen erittäin aktiivinen PHP-yhteisössä kysellen huippukehittäjiltä vinkkejä ja niksejä, joita he käyttävät live-projekteissaan. Siksi, päätavoitteena tämän PHP security tutorial on Tehdä sinut tietoiseksi parhaista käytännöistä turvallisuuden PHP web-sovelluksia. Aion määritellä seuraavat ongelmat ja mainita mahdollisia ratkaisuja niihin.

  • Update PHP Regularly
  • Cross site scripting (XSS)
  • SQL Injection Attacks
  • Cross site request forgery XSRF/CSRF
  • Session kaappaus
  • Piilota tiedostot selaimesta
  • turvallisesti upload files
  • use SSL-varmenteita https
  • deploy PHP apps on clouds

Huom: älä pidä sitä täydellisenä Lunttilappuna. On oltava parempia tapoja ja enemmän ainutlaatuisia ratkaisuja Kehittäjät hakisivat niiden sovelluksia, jotta se täysin turvattu.

PHP Security Best Practice

luodessaan PHP-verkkosovellusta web-insinöörin tulisi olla huolissaan tietoturvan parhaista käytännöistä. Epävarma verkkosovellus antaa hakkereille mahdollisuuden viedä arvokkaita tietoja, kuten asiakastietoja tai luottokorttitietoja. Lisäksi tietomurrolla voi olla äärimmäinen vaikutus organisaatiosi pätevyyteen ja tulevaan toimintaan.

Päivitä PHP säännöllisesti

juuri nyt PHP: n vakain ja uusin saatavilla oleva versio on PHP 8. Suosittelen, että sinun on päivitettävä PHP-sovellus tähän uuteen. Jos käytät edelleen PHP 5.6 tai 7 Sitten sinulla on ottaa paljon deprecations päivitettäessä PHP Sovellukset. Sinun täytyy myös päivittää koodin ja muuttaa joitakin toiminnallisia logiikoita, kuten salasanan tiivistys jne. On myös joitakin työkaluja käytettävissä tarkistaa deprecation koodin ja auttaa sinua siirtämisessä. Olen listannut joitakin työkaluja alla:

  1. PHP-Yhteensopivuustarkistus
  2. PHP MAR
  3. Phan

jos käytät Phpstormia, voit käyttää PHP 7-Yhteensopivuustarkastusta, joka näyttää, mikä koodi aiheuttaa sinulle ongelmia.

Lue Lisää: PHP Hosting Cloudways

Cross-site scripting (XSS)

Cross site scripting on eräänlainen haitallinen web-hyökkäys, jossa ulkoinen skripti ruiskutetaan sivuston koodiin tai ulostuloon. Hyökkääjä voi lähettää saastuneen koodin loppukäyttäjälle, kun taas selain ei tunnista sitä luotetuksi skriptiksi. Tämä hyökkäys tapahtuu enimmäkseen paikoissa, joissa käyttäjä on kyky syöttää ja lähettää tietoja. Hyökkäys voi käyttää evästeitä, istuntoja ja muita arkaluonteisia tietoja selaimesta. Katsotaanpa esimerkki GET-pyynnöstä, joka lähettää tietoja URL-osoitteen kautta:

URL: http://example.com/search.php?search=<script>alert('test')</script>$search = $_GET ?? null;echo 'Search results for '.$search;

tämän hyökkäyksen voi selvittää htmlspecialcharsin avulla. Myös käyttämällä ENT_QUOTES, voit paeta yksi-ja kaksinkertainen lainausmerkkejä.

$search = htmlspecialchars($search, ENT_QUOTES, 'UTF-8');echo 'Search results for '.$search;

sillä välin XSS-hyökkäykset voivat suorittaa myös attribuuttien, koodattujen URI-järjestelmien ja koodauksen avulla.

Lue lisää: Estä XSS Laravelissa

SQL-Pistohyökkäykset

SQL-injektio on yleisin hyökkäys PHP-skriptauksessa. Yksi kysely voi vaarantaa koko sovelluksen. SQL injection Attackissa hyökkääjä yrittää muuttaa kyselyiden kautta välittämääsi dataa. Oletetaan, että käsittelet suoraan käyttäjätietoja SQL-kyselyissä, ja yhtäkkiä nimetön hyökkääjä käyttää salaa eri merkkejä sen ohittamiseen. Katso alla mainittu SQL-kysely:

$sql = "SELECT * FROM users WHERE username = '" . $username . "';

$- käyttäjätunnus voi sisältää muutettuja tietoja, jotka voivat vahingoittaa tietokantaa, mukaan lukien koko tietokannan poistaminen silmänräpäyksessä. Mikä on ratkaisu? San. Suosittelen, että käytät aina valmiita lausuntoja. San auttaa turvaamaan SQL-kyselyt.

$id = $_GET ?? null;

tietokannan ja sovelluksen välinen yhteys tehdään alla olevalla lauseella:

$dbh = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'dbusername', 'dbpassword');

voit valita käyttäjänimen yllä olevan ID: n perusteella, mutta odota! Tässä SQL-koodi ’GET data’ pistetään kyselyn. Ole varovainen välttämään tällaista koodausta ja käytä valmiita lausuntoja sen sijaan:

$sql = "SELECT username, email FROM users WHERE id = ".$id." ;foreach ($dbh->query($sql) as $row) { printf ("%s (%s)\n", $row, $row);}

nyt voit välttää yllä olevan SQL-pistosmahdollisuuden käyttämällä

$sql = "SELECT username, email FROM users WHERE id = :id";$sth = $dbh->prepare($sql, );$sth->execute();$users = $sth->fetchAll();

myös, hyvä käytäntö on käyttää ORM-kaltaista oppia tai kaunopuheisuutta, koska niissä on vähiten mahdollisuutta SQL-kyselyjen pistämiseen.

Lue Lisää: Suojaa PHP-sivusto SQL-Injektiolta

Cross site request forgery XSRF/CSRF

CSRF-hyökkäys on aivan erilainen kuin XSS-hyökkäykset. CSRF-hyökkäyksessä loppukäyttäjä voi suorittaa ei-toivottuja toimia todennetuilla verkkosivustoilla ja siirtää haitallisia komentoja sivustolle suorittaakseen minkä tahansa ei-toivotun toiminnon. CSRF ei voi lukea pyyntötietoja ja kohdistaa useimmiten tilan muuttuvan pyynnön lähettämällä minkä tahansa linkin tai muutetun tiedon HTML-tageissa. Se voi pakottaa käyttäjän suorittamaan valtion muuttuvia pyyntöjä, kuten varojen siirtämistä, sähköpostiosoitteiden muuttamista jne. Katsotaan tämä URL, jossa GET pyynnöt lähettää rahaa toiselle tilille:

GET http://bank.com/transfer.do?acct=TIM&amount=100 HTTP/1.1

nyt jos joku haluaa hyödyntää web-sovellusta, hän muuttaa URL-osoitteen nimellä ja summalla, kuten

http://bank.com/transfer.do?acct=Sandy&amount=100000

nyt tämä URL voidaan lähettää sähköpostitse missä tahansa tiedostossa, Kuvassa jne. ja hyökkääjä saattaa pyytää sinua lataamaan

tiedoston tai klikkaa kuvaa. Ja heti kun teet sen, päädyt heti lähettämään valtavan määrän rahaa, josta et koskaan tiedä.

Istuntokaappaus

Istuntokaappaus on tietyntyyppinen haitallinen verkkohyökkäys, jossa hyökkääjä salaa varastaa käyttäjän istuntotunnuksen. Kyseinen istuntotunnus lähetetään palvelimelle, jossa siihen liittyvä $_SESSION array validoi sen tallennustilan pinossa ja myöntää pääsyn sovellukseen. Istunnon kaappaus on mahdollista XSS-hyökkäyksen kautta tai kun joku pääsee palvelimen kansioon, johon istuntotiedot on tallennettu.

istunnon kaappauksen estämiseksi sido istunnot aina IP-osoitteeseesi:

$IP = getenv ( "REMOTE_ADDR" );

tarkkaile sitä, kun työskentelet localhostissa, koska se ei anna sinulle tarkkaa IP-arvoa, mutta :::1 tai :::127 tyyppiarvoa. Sinun tulee mitätöidä (poista eväste, poista istunnon tallennustila, poista jäljet) istunto nopeasti rikkomuksen tapahtuessa, ja sinun tulisi aina yrittää olla paljastamatta tunnuksia missään olosuhteissa.

evästeiden osalta paras käytäntö on, ettei evästeeseen tallennettuja tietoja saa koskaan käyttää sarjoitettuina. Hakkerit voivat manipuloida evästeitä helposti, mikä johtaa muuttujien lisäämiseen soveltamisalaasi. Poista evästeet turvallisesti näin:

setcookie ($name, "", 1);setcookie ($name, false);unset($_COOKIE);

koodin ensimmäinen rivi varmistaa, että eväste vanhenee selaimessa, toinen rivi kuvaa tavallista tapaa poistaa eväste (näin et voi tallentaa vääriä evästeeseen). Kolmas rivi poistaa evästeen skriptistäsi.

Lue lisää: Redis-palvelin PHP-istuntojen käsittelijänä

Piilota tiedostot selaimesta

jos olet käyttänyt PHP: n mikrokehyksiä, sinun on täytynyt nähdä erityinen hakemistorakenne, joka takaa tiedostojen sijoittelun oikein. Puitteet mahdollistavat erilaisia tiedostoja, kuten ohjaimet, mallit, asetustiedosto(.yaml) jne tässä hakemistossa, mutta suurimman osan ajasta selain ei käsittele kaikkia tiedostoja, mutta ne ovat kuitenkin nähtävissä selaimessa. Tämän ongelman ratkaisemiseksi, et saa sijoittaa tiedostoja juurihakemistoon vaan julkiseen kansioon niin, että ne eivät ole käytettävissä koko ajan selaimessa. Katso Slim-viitekehyksen hakemistorakenne alta:

slim hakemistorakenne

slim-hakemistorakenne

turvallisesti ladata tiedostoja

Tiedostojen lataaminen on välttämätön osa mitä tahansa käyttäjän tietojenkäsittelysovellusta. Mutta muista joissakin kohdissa, tiedostoja käytetään myös XSS hyökkäyksiä kuten olen jo selittänyt edellä artikkelissa. Palatakseni perusasioihin, käytä aina lomakkeessa olevaa POSTIPYYNTÖÄ ja ilmoita ominaisuus enctype=”multipart/form-data” <form> tag. Vahvista tiedostotyyppi finfo-luokan avulla näin:

$finfo = new finfo(FILEINFO_MIME_TYPE);$fileContents = file_get_contents($_FILES);$mimeType = $finfo->buffer($fileContents);

kehittäjät voivat luoda omia mukautettuja ja erittäin turvallisia tiedostojen validointisääntöjä, mutta joillakin kehyksillä, kuten Laravel, Symfony ja codeigniter, on jo ennalta määritellyt menetelmät tiedostotyyppien validoimiseksi.

katsotaanpa toista esimerkkiä. Muodon HTML: n pitäisi olla tällainen:

<form method="post" enctype="multipart/form-data" action="upload.php"> File: <input type="file" name="pictures" multiple="true"> <input type="submit"></form>

ja lataa.php sisältää seuraavan koodin:

foreach ($_FILES as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmpName = $_FILES; $name = basename($_FILES); move_uploaded_file($tmpName, "/var/www/project/uploads/$name"); }}

oikein ilmoittamalla UPLOAD_ERR ja basename () voi estää hakemiston läpikulkuhyökkäykset, mutta muutamia muita validointeja – kuten tiedostokoko, Tiedostojen uudelleen nimeäminen ja tallentaa ladatut tiedostot yksityiseen sijaintiin – tarvitaan myös vahvistamaan sovellusten turvallisuutta.

Lue lisää: Kuvan ja tiedoston lataus PHP: ssä

Käytä SSL-varmenteita HTTPS: lle

kaikki nykyaikaiset selaimet, kuten Google Chrome, Opera, Firefox ja muut, suosittelevat HTTPS-protokollan käyttöä verkkosovelluksissa. HTTPs tarjoaa suojatun ja salatun pääsykanavan epäluotettaville sivustoille. Sinun on sisällytettävä HTTPS asentamalla SSL-sertifikaatti sivustoosi. Se myös vahvistaa verkkosovelluksia XSS-hyökkäyksiä vastaan ja estää hakkereita lukemasta kuljetettua dataa koodien avulla. Cloudways tarjoaa ilmaisia SSL-varmenteita yhdellä napsautuksella, jotka ovat voimassa 90 päivää ja voit helposti peruuttaa tai uusia ne yhdellä napsautuksella. Voit seurata oppaita SSL-varmenteiden perustamiseen PHP -, WordPress -, Magento-ja Drupal-sovelluksissa.

ota PHP-Sovellukset käyttöön pilvissä

Hosting on viimeinen ja ensiarvoisen tärkeä askel mille tahansa verkkosovellukselle, sillä luot projektin aina paikallisilla PHP-palvelimilla ja otat ne käyttöön live-palvelimilla, jotka tarjoavat joko jaettua, pilvipalvelua tai dedikoitua hostausta. Suosittelen aina käyttämään pilvipalveluja, kuten DigitalOcean, Linode, AWS. Ne ovat nopeita, turvallisia ja turvallisia minkä tahansa sivuston ja sovelluksen. Ne tarjoavat aina suojatun kerroksen estämään palvelunestohyökkäyksiä, raakaa voimaa ja tietojenkalasteluhyökkäyksiä, jotka ovat erittäin haitallisia verkkosovelluksille.

saatat myös pitää: Laravelin jaetun hostauksen sudenkuopat projekteillesi

jos haluat ottaa PHP-sovelluksia käyttöön pilvipalvelimilla, sinulla täytyy olla hyvät Linux-taidot luodaksesi tehokkaita web-pinoja, kuten LAMP tai LEMP, mikä usein maksaa aikaa ja budjettia Linux-ammattilaisille. Sen sijaan Cloudways managed PHP ja MySQL hosting-alusta tarjoavat sinulle helpon tavan ottaa Thunderstack-palvelimet käyttöön muutamalla klikkauksella edellä mainituilla pilvipalvelujen tarjoajilla. Thunderstack auttaa PHP-sovellusta olemaan täysin suojattu erilaisilta haitallisilta hyökkäyksiltä ja takaa optimoidun suorituskyvyn.

Lue lisää: Enhanced Cloudways Staging Environment Is Now Available for All Users

Document Root Setup

document root for PHP applications on any server must be set to var/www/html so that users can access your website via the browser. Mutta joissakin tapauksissa, kun kehität API kehyksiä kuten Laravel, Symfony, ja Slim, sinun täytyy päivittää webroot `/public kansio.

/public palvelee sovelluksen tuotosta, joka on samanlainen kuin yksinkertainen PHP-sivusto indeksillä.php-tiedosto. Tarkoituksena asettaa webroot varhttps://www .html/public on piilottaa arkaluontoiset tiedostot kuten.htaccess ja .env, joka sisältää tietokannan, postin, Maksuliittymien ympäristömuuttujat ja tunnistetiedot.

myös kehykset kuten Laravel, Symfony suosittelevat, ettei kaikkia tiedostoja siirretä pääkansioon, vaan mukavan hakemistorakenteen luominen liittyvien tiedostojen, kuten näkymien, mallien ja ohjaimien, tallentamiseksi on järkevämpi lähestymistapa.

kirjaa kaikki virheet ja piilota tuotannossa

, kun olet kehittänyt verkkosivuston ja ottanut sen käyttöön live-palvelimella. Ensimmäinen asia, sinun täytyy tehdä, on poistaa näytön virheitä, koska hakkerit saattavat saada saman arvokasta tietoa virheistä. Aseta tämä parametri php.INI-tiedosto:

display_errors=Off

nyt, kun näyttö on poistettu, log PHP virheet tiettyyn tiedostoon tulevia tarpeita varten:

log_errors=Onerror_log=/var/log/httpd/php_scripts_error.log

tietenkin, voit muuttaa tiedostonimi kuin haluat.

saatat myös pitää: yksinkertaista Laravel Error Logging with PHP Rollbar Integration

Whitelist Public IP for MySQL

kun työskentelet PHP-sovellusten kanssa, sinun on usein asennettava MySQL-tietokanta sisäisissä skripteissä sekä MySQL-asiakkaissa. Useimpia asiakkaita käytetään MySQL-etäyhteyden määrittämiseen, joka tarvitsee IP-osoitteen tai muun hostnimen, jonka hosting-palvelin tarjoaa yhteyden luomiseksi.

MySQL-etäyhteyden julkinen IP-osoite on merkittävä valkoiselle listalle hosting-palvelimeesi, jotta anonyymi käyttäjä ei pääse tietokantaan. Esimerkiksi Cloudways-palvelussa voit valkolistaa IP: n nimellä:

nyt voit liittää SQLyog tai MySQL workbench työskennellä etänä tietokantaan.

K: Miten testata PHP security?

A: markkinoilla on muutamia koodiskannerityökaluja, joiden avulla voit analysoida PHP-sovellusten koodin laatua ja turvallisuutta. PHP Malware Finder (PMF) on yksi parhaista tietoturvatestaustyökaluista, joka auttaa löytämään haitallisia koodeja tiedostoista. Voit myös käyttää ripsiä, joka on suosittu koodianalyysityökalu, joka auttaa löytämään koodihaavoittuvuuksia reaaliajassa.

Q: Miten PHP-tietokannan turvallisuus varmistetaan?

A: tietokannan turvallisuuden varmistamiseksi kannattaa aina käyttää käytäntöjä, kuten SQL injection protection, tietokannan palomuurit, säännöllinen tietojen salaus ja vastaavat muut.

Q: Mikä on turvallinen tapa salata salasana PHP: ssä?

A: MD5 on lyhenne sanoista Message Process 5, ja sha1 on lyhenne sanoista Secure Hash Algorithm 1. Niitä molempia käytetään merkkijonojen salaamiseen. Kun merkkijono on salattu, se saa toistuvia purkaa sen. Md5 ja sha1 ovat poikkeuksellisen hyödyllisiä tallennettaessa salasanoja tietokantaan.

Q: Mikä on PHP-haavoittuvuus?

A: PHP Object Injection on sovellustason haavoittuvuus, joka näyttää sallivan hyökkääjän suorittaa erilaisia haitallisia hyökkäyksiä, kuten Code Injection, SQL Injection, Path Traversal, ja Denial of Service.

palvelunestohyökkäys vaarantaa useita tietokonejärjestelmien hyökkäyksiä. Tavallisia kohteita ovat palvelimet, verkkosivustot tai muut verkon resurssit.

tämä tapahtuu, kun käyttäjän syöttämää syötettä ei hallita ennen sen siirtämistä unserialize() PHP-funktiolle. Koska PHP sallii objektien sarjallistamisen, hyökkääjät voivat siirtää ad-hoc-sarjan merkkijonoja puolustuskyvyttömään unserialize () – kutsuun.

Lopettelen!

No, PHP: n tietoturvan parhaat käytännöt on hyvin laaja aihe. Kehittäjät ympäri maailmaa pyrkivät kehittämään erilaisia käyttötapauksia web-sovellusten turvaamiseksi. Vaikka monet yritykset käyttävät erilaisia bounty-ohjelmia selvittääkseen sovellustensa tietoturva-aukkoja ja haavoittuvuuksia ja palkitakseen siten niitä tietoturva-asiantuntijoita, jotka huomauttavat sovellusten kriittisistä porsaanrei ’ istä. Tämä artikkeli kattaa PHP: n peruskysymykset, joiden avulla voit ymmärtää, miten suojata PHP-projekteja eri haitallisilta hyökkäyksiltä. Kirjoitan myös muutamista PHP-tietoturvavinkeistä ja-nikseistä myös tulevaisuudessa. Siihen asti voit kertoa ajatuksiasi ja turvallisuuskäytäntöjäsi alla olevassa kommenttiosiossa.

kerro mielipiteesi kommenttiosiossa. Kommentoi nyt

Jaa tämä artikkeli

Asiakasarvio osoitteessa

”Cloudways hosting on yksi parhaista asiakaspalvelun ja hostauksen nopeus”

Sanjit C

Shahroze Nawaz

Shahroze on PHP – yhteisöpäällikkö Cloudways-hallinnoidulla PHP Hosting-alustalla. Työelämän lisäksi hän rakastaa elokuvia ja matkustelua. Voit lähettää hänelle sähköpostia numeroon

Get Connected on: Twitter – yhteisöfoorumi

Leave a Reply

Sähköpostiosoitettasi ei julkaista.