cross site scripting ลองอ่านดูครับ
http://codesnippet.exteen.com/20081021/cross-site-scripting 
ภาษาไทย
อธิบายง่ายๆก็คือการแทรก script เข้ามาสู้หน้าเว็บเราในรูปแบบต่างๆกัน ดูจากเว็บเขาจะอธิบายตัวอย่างชัดเจนหมดเลย เข้าใจง่าย
การป้องกันก็คือกรองเอา script ในแบบต่างๆออก ไม่ว่าจะ <script> script: onmouseover="" on... ฯลฯ
cross site request forgery คือการสร้างฟอร์มปลอมๆเพื่อหลอกเหยื่อให้ดำเนินการผ่านฟอร์ม
เช่น
ในหน้า admin form method post และมีปุ่ม delete.
เหยื่อได้ทำการ log in admin แล้วลืม log out และเหยื่อหลงเข้ามาในหน้าหลอกเพื่อโจมตี แล้วดันไปกดลิ้งค์ในหน้าหลอกนั้น
สคริปต์ที่เขียนในหน้าหลอกนั้นจะทำหน้าที่เหมือนปุ่ม delete.
พอเหยื่อกลับไปดูหน้าเว็บตัวเอง อ้าว ข้อมูลหายวับไปแล้ว
เป็นต้น
การป้องกันก็อย่างที่คุณ bonshington ว่าไว้
sql injection คือการโจมตีไปที่ sql
ให้ป้องกันโดยเช็คค่าของตัวเลขก่อนใส่คำสั่ง sql ที่รับค่าตัวเลขมา ในกรณีที่ sql field เป็น string (varchar, text) ให้ใช้ mysql_real_escape_string() ใส่
ตย.
$id = $_GET['id'];// ค่านี้ต้องเป็นตัวเลข
if ( ! is_numeric($id) ) {die("id ไม่เป็นตัวเลข");}
$sql = "select * from table where id = $id and name = 'my_real_escape_string($_POST['name'])'";