พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

กรอกข้อมูลหน้าเว็บ ไม่ให้แทรกพวก HTML Tag หรือ Script ต่างๆ ควรทำอย่างไร

+2 votes
การกรอกข้อมูล บนหน้าเว็บ และมีการนำข้อมูลไปบันทึกลง DB (MySQL)

ไม่อยากให้ แทรก HTML Tag หรือ แทรก Javascript Script หรือ Script อื่นๆ ได้

 

ไม่เคยทำแนวนี้มาก่อนเลย

ไม่ทราบว่า มีวิธีการจัดการเรื่องพวกนี้ได้อย่างไร บ้าง
ถามเมื่อ May 18, 2012 in PHP & MySQL & Ajax โดย phanithanj (1,139 คะแนน)
   

5 Answers

+1 vote
ตอบเมื่อ May 18, 2012 โดย SuRiVCruse (128 คะแนน)
เรื่อง SQL Inj. ไม่มีปัญหาหรอกครับผม

อยากรู้ว่า การตัด HTML Tag, Javascript ออก มันมีเทคนิคแบบไหน
มี Script ที่ช่วยทำหรือไม่

อะไรประมาณนั้นครับ
รบกวนถามต่อครับผม

htmlspecialchars นี่จัดการกับ html tag

แล้วถ้าเจอ javascript จะช่วยได้ไหมครับผม
htmlspecialchars  จะแปลง ตัวอักษร ที่กรอกใส่เข้ามา เป็นรหัสอักษร html ครับ

เช่น จาก "<" เป็น "&lt;"
+1 vote
เห็นด้วยกับคุณ SuRiVCruse ค่ะ เรื่อง sql injection แนะนำให้ใช้ฟังก์ชันของ mysqli แทน mysql ด้วยนะคะ เนื่องจากมี prepare statement ให้ใช้งาน และถ้าเป็นไปได้แนะนำให้เขียนเป็น stored procedure ใช้งาน แทนการเรียกตารางต่างๆ โดยตรงนะคะ จะช่วยป้องกันเรื่องการโดนขโมยสิทธิต่างๆ ในฐานข้อมูลได้เยอะเลยค่ะ
ตอบเมื่อ May 18, 2012 โดย แสงทอง ปีสิงห์ (127 คะแนน)
+2 votes
ใช้ strip_tags ก้ได้นะครับ tag html หายหมด แต่ตั้งอนุญาติบาง tag ได้ครับ

http://php.net/manual/en/function.strip-tags.php
ตอบเมื่อ May 19, 2012 โดย mix5003 (715 คะแนน)
0 votes
ถ้าจะไปไม่เอา tag นั้นเลยใช้ strip_tags แต่ถ้าจะให้เก็บบาง tag ได้ ผมว่าเก็บ < > โดยยังไม่ต้องเปลี่ยนเป็น &lt; &gt; แล้วตอนแสดงผลค่อยมาดัก
ตอบเมื่อ May 19, 2012 โดย Krurkrit Phoosakul (1,174 คะแนน)
+2 votes

ถามเอง ตอบเอง

 

ตอนนีเขียน function เองเรียบร้อย หาข้อมูลมาจาก เว็บ php.net

 

กำหนดได้ว่า จะอนุญาติให้ใช้ tag อะไรได้บ้าง

 

$allow = "<a><b><u><i>";

$output = strip_tags($text, $allow);

preg_match_all("/<([^>]+)>/i", $allow, $allTags, PREG_PATTERN_ORDER);

foreach ($allTags[1] as $tag)

{

$output = preg_replace("/<".$tag."[^>]*>/i","<".$tag.">", $output);

}

// out put ที่ได้ นำไปใช้ต่อ

return $output;

 

 

ตอบเมื่อ May 19, 2012 โดย phanithanj (1,139 คะแนน)

Related questions

0 votes
0 คำตอบ
0 votes
1 คำตอบ
743 views ถามเมื่อ Oct 6, 2012 in PHP & MySQL & Ajax โดย Eggvalue (1,179 คะแนน)
+1 vote
1 คำตอบ
...