Ciallaíonn slándáil PHP cosaint a dhéanamh i gcoinne na leochainte gréine coiteanna ar an gréasán (OWASP Top 10) ar gach sraith — láimhseáil ionchur, rochtain ar bhunachar sonraí, aschur, fíordheimhniú, agus cumraíocht. Ó tharla go bhfuil PHP ina chumhacht ar oiread sin den ghréasán, tá na cleachtais seo criticiúil.
1. Cosc a chur ar injected SQL — ráiteas ultrapast
// ❌ NEVER concatenate user input into SQL
$pdo->query("SELECT * FROM users WHERE id = " . $_GET['id']); // INJECTION
// ✅ ALWAYS use prepared statements (input treated as data, not SQL)
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_GET['id']]);
2. Cosc a chur ar XSS — gach aschur a dhíchur
// ❌ echoing raw user input → XSS (injected scripts run in the browser)
echo $_GET['name'];
// ✅ escape output for HTML context
echo htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8');
Díchur sonraí atá rialaithe ag an úsáideoir ar aschur (htmlspecialchars) ionas nach féidir HTML/JS insteallta a fhorghníomhú. (Déanann inneall teimpléid cosúil le Twig/Blade díchur go huathoibríoch.)
3. Haiscríobh focail fhaire i gceart
// ✅ use password_hash (bcrypt/argon2) — never plaintext, never MD5/SHA
$hash = password_hash($password, PASSWORD_DEFAULT);
// verify:
if (password_verify($input, $hash)) { /* correct password */ }
Baineann feidhmeanna dúmhaiste PHP password_hash/password_verify úsáid as halgartam láidir, salainn, mall — an bealach ceart chun focail fhaire a stóráil.
4. Cosc a chur ar CSRF — comhabhair
// generate a token, store in the session, include in forms, verify on submit
$_SESSION['csrf'] = bin2hex(random_bytes(32));
// verify on POST: hash_equals($_SESSION['csrf'], $_POST['csrf'])
5. Bailíonn agus glan gach ionchur
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); // validate
$id = (int) $_GET['id']; // cast/whitelist
// never trust $_GET/$_POST/$_COOKIE — validate everything
6. Cumraíocht agus cleachtais eile slán
✓ display_errors=Off in production (don't leak stack traces/internals to users — log instead)
✓ Keep secrets in env vars / config outside the web root, NOT in code/git
✓ Use HTTPS; set secure/httponly/samesite cookie flags
✓ Keep PHP and dependencies UPDATED (composer audit for vulnerable packages)
✓ Validate file uploads (type, size); store outside the web root
✓ Use a maintained framework (Laravel/Symfony) — they handle many protections by default
Cén fáth a bhfuil sé tábhachtach
Tá slándáil criticiúil do fheidhmchláir PHP, agus is riachtanach a thuigbheáil na cleachtais seo — toisc go bhfuil PHP ina chumhacht ar chuid mhór an ghréasáin, bíonn feidhmchláir PHP i sprioc leanúnach ionsaithe, agus is féidir le teipeanna slándála a bheith tubaisteach (briseadh sonraí, comhthromú cuntas, defacement).
Déanann PHP aghaidh ar na leochainte gréine is coiteanna agus is gabhálta, ach murab ionann agus roinnt fhramaí oibre, braitheann go leor ar an bhforbróir na cleachtais cheart a leanúint.
Na bunriachtanais dhonochta: ráitis ultrapast a chosc SQL injection (ceann de na hionsaithe is coiteanna agus is millteach), díchur aschuir (htmlspecialchars) a chosc XSS, password_hash/password_verify a chinntiú go bhfuil stóráil focal fhaire slán (ní dé ghnáth/drochchréachtanna dhéibhinn), comhabhair CSRF a dhíon iarratas athraitheach staid, agus fíordhlacú ionchuir dhian (gan brath ar $_GET/$_POST/$_COOKIE) atá mar bhunús.
Tá cumraíocht shlán chomh tábhachtach céanna: aischuir earráide a bhac i dtáirgeadh (sonraí mothúchánach a bhristí ag ionsaithe), rúnda a choinneáil as cód, HTTPS agus bratacha foluain slán a úsáid, uachtar a fhíordhlacadh, agus PHP agus cleithiúnas a choinneáil nuashonraithe (toisc go bhfuil pacáistí leochainte ina fhoinse ionsaithe mór).
Tá tuiscint ar an gcur chuige sraitheanna, cosaint-i-domhain seo — agus go bhféadfadh sraith amháin bhreise (injected, rún scaoilte, aschur gan díchur, cleithiúnas gan leigheas) an córas ar fad a dhéanamh neamhchosúil — tábhachtach, taithí ardchéime d'aon fhorbróir PHP.
Cé gur soláthraíonn framaí nua-aimseartha (Laravel, Symfony) go leor cosaintí de réir réamhshocrú, is gá tuiscint ar na bagartha agus na cleachtais bhunúsacha agus freagracht riachtanach chun feidhmchláir shlán a bhogadh, agus é seo ábhar criticiúil, ábhar ináirithe-minic i PHP táirgeadh.
