Core PHP Security: How to Sanitize and Validate $_POST Data (Essential Guide)
Core PHP Security: How to Sanitize and Validate $_POST Data (Essential Guide)
Web development ka asli maza tab aata hai jab teri website sirf chalti nahi, secure bhi chalti hai. PHP me sabse zyada risky scene hota hai jab tu $_POST data accept karta hai. Yahin hacker log apni entry maarte hain.
Is blog me simple aur street-smart tareeke se samjho ki sanitize aur validate kaise karein, taaki teri site full safe rahe.
1. Form Data Ka Problem – Hackers Kahan Se Aate?
User form me kuch bhi bhar sakta hai:
- Naam ki jagah script
- Email me random text
- Password me HTML tags
- Message me SQL query
Agar tu data bina check kiye database me daal de, to website ko lag jaati hai full vaat.
2. Sanitization Kya Hoti Hai?
Sanitization ka matlab hota hai data ko saaf-suthra banana — harmful characters hata dena.
Simple words: User ne jo kuch bhi ulta-seedha likha, usko safe bana do.
Useful Sanitization Functions:
trim()strip_tags()htmlspecialchars()filter_var()mysqli_real_escape_string()(SQL ke liye)
3. Validation Kya Hoti Hai?
Validation matlab check karna ki input format-wise sahi hai ya nahi. Jaise email sahi hai? Number me letters to nahi? Message minimum length ka hai?
Sanitize = Safai
Validate = Check
4. PHP Me $_POST Ko Secure Kaise Handle Karein?
Step 1: Request Type Check
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Code
}
Step 2: Sanitize Inputs
$name = trim($_POST["name"]);
$name = strip_tags($name);
$name = htmlspecialchars($name, ENT_QUOTES);
Step 3: Validate Inputs
if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
$errors[] = "Naam me sirf letters aur space allowed hai!";
}
Email Example:
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Email format theek nahi hai!";
}
SQL Injection Protection (Best Option)
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
5. Best Practices Jo Har Developer Ko Follow Karna Chahiye
- Bina sanitize & validate kabhi data store mat kar
- Client-side validation optional, server-side compulsory
- XSS rokne ke liye
htmlspecialchars()always use karo - SQL Injection se bachne ka best tareeka = Prepared Statements
- Password ko
password_hash()se encrypt karo - CSRF tokens lagana mat bhool
6. Full Secure Form Handling Example
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$errors = [];
// Name
$name = trim($_POST["name"]);
$name = strip_tags($name);
$name = htmlspecialchars($name, ENT_QUOTES);
if (!preg_match("/^[a-zA-Z ]+$/", $name)) {
$errors[] = "Naam sahi nahi lag raha!";
}
// Email
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Email valid nahi hai!";
}
// Message
$msg = trim($_POST["message"]);
$msg = htmlspecialchars($msg, ENT_QUOTES);
if (strlen($msg) < 10) {
$errors[] = "Message thoda lamba likh bhai!";
}
if (empty($errors)) {
$stmt = $conn->prepare("INSERT INTO feedback (name, email, message) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $msg);
$stmt->execute();
echo "Form submit ho gaya!";
} else {
print_r($errors);
}
}
7. Common Mistakes Jo Naye PHP Developers Karte Hain
- Direct
$_POSTko SQL me daal dena - Sirf client-side validation par bharosa
- Password ko plain text me store karna
- CSRF protection ignore karna
- Error messages me zyada details dena
8. Conclusion – Secure PHP Ka Mantra
PHP me data security koi option nahi — necessity hai. Agar tu sanitize + validate + prepared statements follow karega, to hacker ka pura game over.
Sanitize karo → Validate karo → Securely store karo
Bas is mantra se teri PHP site full dabangg chalegi.
Comments
Post a Comment