หลังจากอ่านข่าวว่า cracker ชอบโจมตีหน้าเว็บ ผมคิดเอาเองนะว่า ถ้าใช้ jsp สร้างจะโดนไหม เพราะเคยเห็นแต่ php โดนประจำ คุณ apple ผู้สร้าง AppServ เคยแสดงโปรแกรมที่ไม่ต้องมี root password แต่สามารถเข้าไปเปลี่ยนแปลงแก้ไขหรือลบข้อมูลในหน้าเว็บที่ใช้ php เสมือนว่าเราเป็นเจ้าของได้เลย หากเครื่องนั้นแค่ติด php module ไอ้เจ้าโปรแกรมตัวนี้ก็สามารถเล่นงานเว็บนั้นได้แล้ว (น่ากลัวจริง ๆ ) ผมเลยถามไปว่า หากไม่ติด php module ในเครื่องเลยล่ะ เขาก็ตอบผมว่า มันก็จะโจมตีไม่ได้ พอมามองที่ jsp ที่ใช้ j2ee, j2se เป็นแกนหลักแล้ว หากมันเปิดเผย vm ด้วยเนี่ย สงสัยมันคงจะไม่ปลอดภัยอีกต่อไป แค่เปิดเผย API เนี่ย ปกติมันก็ดูได้หมดอยู่แล้ว ไม่ใช่เรื่องน่าตื่นเต้นอะไรเลย
เปิดไปแล้วครับ HotSpot ก็คือชื่อ JVM เปิดไปพร้อมกับ JavaME, javac, JavaHelp นั่นแหละ ถ้าจำไม่ผิดก็ 6 ล้านกว่าบรรทัดเอง
ลองแกะดูได้ไม่มีใครว่าครับ ผมก็อยากรู้ถ้าโอเพ่นซอร์สอย่างนี้จะเจอยิงยังไง คิดว่าเป็นเรื่องที่ยากแต่ก็คงเป็นไปได้ในทางทฤษฏี เพราะถ้าจะแฮกกัน เท่าที่ผมพอจะนึกเล่นๆ ออก ก็คงอาจจะลองยิง byte code เข้าไป แล้วมันต้องผ่านขั้นตอนการ validate ของ VM ตอนโหลด class ถ้าสามารถหาวิธี bypass ขั้นตอนนี้ได้ก็คงจะน่ากลัว
นี่แค่ในมุมมองของผมที่เป็น developer นะ ต้องลองถาม hacker ดูอาจจะได้อีกมุมมอง
แต่ไม่ต้องรีบตกใจเวอร์ๆ นะ เรื่อง security จาวาปลอดภัยกว่า php เยอะ คงไม่ได้ทำกันง่ายๆ
อย่างที่คุณ Gmz บอกเขาเรียกว่า security by hidden ครับ คือ คิดว่าซ่อนไว้ไม่ให้คนอื่นรู้ว่ามันทำงานยังไง เพื่อความปลอดภัย มันเป็นระบบความปลอดภัยที่ไม่ได้มาตรฐาน และไม่เป็นที่ยอมรับครับ เพราะการจะรู้ว่าระบบมันทำงานยังไงไม่จำเป็นต้องดูซอร์สโค้ดครับ มันมีวิธีการมากมาย
หากไปพูดเรื่องนี้กับคนที่เขาเป็นแฮกเกอร์จริง ๆ ฟัง เขาก็จะร่ายยาวเลยครับ เพราะว่าประเด็นนี้เป็นประเด็นที่เขาถกกันมาตั้งแต่ก่อตั้ง GNU แล้วครับ
ระบบใดระบบหนึ่ง หากมันจะปลอดภัย หรือ ไม่ปลอดภัย ไม่ได้ขึ้นอยู่กับว่า มันจะเปิดเผย Source Code หรือไม่ หรือว่า มันจะเป็น OpenSource หรือไม่ หรือว่า คนอื่นจะรู้หรือไม่ว่ามันทำงานยังไง แต่มันอยู่ที่การออกแบบระบบครับ
ระบบที่ดี และปลอดภัยจริง ๆ คือระบบที่ทุกคนรู้ครับว่ามันทำงานยังไง และรู้อย่างละเอียดด้วย แต่ไม่สามารถเจาะเข้าไปในระบบได้ ซึ่งมันเป็นสาเหตุหนึ่งครับ ที่ทำให้เกิดโครงการ OpenSource ต่าง ๆ ขึ้นมา เพราะเหล่าแฮกเกอร์ทั้งหลาย อยากสร้างระบบที่ผมว่ามาไงครับ
สรุปคือ มันเป็นความเข้าใจผิดอย่างหนึ่งครับ หากจะบอกว่าการ OpenSource ทำให้ระบบปลอดภัยน้อยลง
bow_der_kleine: งั้นแล้วทำไม php apache2 ที่เปิดเผยโค้ดทั้งหมด ตั้งแต่ต้นก็เป็น GPL ทำไมถึงยังไม่สามารถสร้างระบบที่ปลอดภัยได้ซักทีล่ะครับ ผมคิดว่าในโลกนี้ไม่มีระบบที่ปลอดภัยจริง ๆ หรอก เพราะไม่อย่างนั้นจะมีการ upgrade เวอร์ชั่นไปทำไม บางทีก็ทำเพื่อเพิ่มประสิทธิภาพ แต่ส่วนใหญ่เห็นทำเพื่ออุดช่องโหว่ ถ้าหากทำตามวิธีการป้องกันโฮสอย่างที่ คุณ apple สอนมา ก็คงป้องกันได้ระดับหนึ่ง แต่ผมก็ไม่เก่งเท่าคุณ apple ที่ศึกษาการแฮกตลอดเวลา ดังนั้น ผมจึงอยากเลือกเทคโนโลยีที่ไม่ต้องไปกังวลกับ security ให้มากนัก มองไปมองมาก็เห็นจะเหลือแต่ j2ee ส่วน mono มันสู้ในระดับ enterprise ไม่ได้ php ก็มีข้อดีตรงที่ทำงานเร็ว ไม่หน่วงเครื่องเท่าจาวา แต่ข้อเสียคือด้านความปลอดภัยที่ไม่แน่วันดีคืนดีจะโดนแฮกเอา เหมือนที่ narisa เคยโดนมาก่อน ถ้าไม่ได้ backup ข้อมูลไว้ คงแย่แน่ ๆ
Gmz - ผมอ่านแล้วไม่รู้เรื่องแฮะว่าคุณพยายามจะบอกอะไร? ------ LewCPE
lewcpe.com, @wasonliw
ใช่ครับ ในโลกนี้ไม่มีโปรแกรม หรือ ระบบไหนที่ปลอดภัยร้อยเปอร์เซ็นต์หรอกครับ ดังนั้นไม่ต้องกังวลไปครับ ใช้อะไรก็โดนแครกได้หมด อยู่ที่ว่าจะง่าย หรือยาก และเราจะป้องกันมันยังไงแค่นั้นเองครับ
จริง ๆ ปัญหาไม่น่าจะอยู่ที่ apache ครับ แต่น่าจะอยู่ที่ php มากกว่า เพราะเดิมที php ไม่ได้ถูกสร้างขึ้นมาเพื่อเป็นภาษาเขียนโปรแกรม หรือสร้างเวบไซท์ขนาดใหญ่อย่างที่เราเห็นทุกวันนี้ครับ แต่มันถูกสร้างขึ้นมาเพื่อเป็น tools ในการสร้าง Homepage ดังนั้นจึงไม่น่าแปลกใจครับ หาก PHP จะมีปัญหาเรื่องความปลอดภัย
ส่วน apache เป็น webserver มาตรฐาน ที่เข้าขั้นปลอดภัย หากจะใช้ java ผมคิดว่ายังไงก็หนีไม่พ้น apache อยู่ดีครับ
ส่วน mono ผมคิดว่ามันเป็นเทคโนโลยีที่พร้อมมากแล้วครับ ส่วนที่ MS.Net มี แต่ mono ยังไม่มี ส่วนมากจะเป็นเทคโนโลยีจาก MS.Net 3.0 ครับ
เทคโนโลยีอื่น ๆ ที่น่าสนใจเห็นจะมี Python (ตัวนี้น่าจับตามาก มันเก่งพอ ๆ กับ Java เลยครับ แต่เขียนง่ายกว่าเยอะ) กับ Ruby (มันกระเดียดไปทาง PHP คือเน้นเฉพาะการสร้าง website เพราะนอกจาก Rail แล้ว ผมยังไม่ค่อยเห็นคนพูดถึง Ruby เท่าไร)
สำหรับผมแล้ว ทุกเทคโนโลยี มันก็มีข้อดีข้อเสียในตัวเองหมดครับ ไม่ยกเว้นเรื่องความปลอดภัย การจะเลือกใช้เทคโนโลยี ผมคิดว่าต้องดูที่บริบทเป็นหลัก ว่าความพร้อมของเทคโนโลยีที่เราใช้ ในส่วนที่เราต้องการมีมากแค่ไหนครับ ส่วนเรื่องความปลอดภัย หากมี expert ด้านนี้โดยเฉพาะเป็นที่ปรึกษาจะดีมาก เพราะมันเป็นเรื่องที่ต้องศึกษากันเยอะมากครับ
php ไม่ผิด ผิดที่คนเอาไปเขียน โดยเฉพาะพวกซอฟต์แวร์ยอดนิยมเช่นเวบบอร์ด หน้าตาดีความปลอดภัยต่ำ
sugree: ผมว่าจะไปโทษ CMS เลยทีเดียวก็คงไม่ได้ (ถึงแม้ว่าผมเองจะไม่ชอบใช้ CMS ก็เถอะ) เพราะผมว่า ปัญหาส่วนใหญ่เกิดจากคนใช้มันไม่เป็นมากกว่า จะติดตั้งก็ทำตามเว็บ howto ไปเรื่อยๆ แล้วเว็บพวกนี้มันเหมือนๆ กันหมด เจอรูในเว็บนึงทีก็เอาไปใช้ได้หมด แล้วพอเค้าออก security patch มา หลายคนก็ไม่อัพเดท เพราะทำไม่เป็นบ้าง ไม่ก็ใช้ของเถื่อนบ้าง
---------- iPAtS
iPAtS
ipats - เห็นด้วยว่าคนใช้ต้องใช้ให้เป็น แต่มันก็น่าเศร้านะโปรแกรมดีๆ แต่เขียนตั้งแต่สมัย php3 เลยพาลให้เกิดความเสี่ยงสูงมาก จะแก้ก็แทบจะไม่ต่างอะไรกับเขียนใหม่ คนเขียนก็เศร้า คนใช้ก็เซ็ง
ผมเชื่อว่าโปรแกรมที่ผ่านสายตาคนตรวจสอบเยอะๆ น่าจะมีความปลอดภัยมากกว่าโปรแกรมที่ผ่านการ review แค่ในวงจำกัดนะ
ถ้าหากเปิดโค้ดแล้ว แครกเกอร์ฝ่ายอธรรมมีโอกาสหาช่องโหว่เล่นงานได้ ความเป็นไปได้ที่แฮกเกอร์ฝ่ายธรรมะ จะเจอรูโหว่นั้นและจัดการแก้ไข ก็น่าจะเป็นไปได้พอๆ กันนะ (ยกเว้นฝ่ายอธรรมมีเยอะกว่าฝ่ายธรรมะมากๆ)
pittaya.com
เท่าที่ฟังมา เห็นบอกว่า php ไม่ปลอดภัยเท่า java นี้มันแง่ไหนครับ และถ้าไม่ปลอดภัยจริง ทำไม blognone ใช้ php ละครับ
http://www.blognone.com/index.php?q=node/3430
สิ่งที่ php มีแต่ java (web form) ไม่มีในไทยในตอนนี้คือการหาพื้นที่สำหรับคงอยู่ครับ (ในความคิดผมนะ)
ตอนนี้ host ต่าง ๆ มีน้อยที่จะสนับสนุน แถมถ้าสนับสนุน ก็ราคาแพงกว่าเกือบเท่าตัวเลยทีเีดียวครับ รวมไปถึงการหา web app มาใช้งานส่วนใหญ่มักจะเสียเงินในการซื้อมาในประสิทธิภาพเท่าๆ กัน แม้ security จะด้อยกว่า แต่ราคาก็ทำให้ประเด็นดังกล่าวตกไปได้ แล้วการไล่อุดทีหลังก็ง่ายกว่า ส่วนใหญ่มั่น backup สม่ำเสมอก็ ok แล้ว
Ford AntiTrust: ผมว่าอีกประเด็นก็น่าจะเป็นเพราะ PHP เป็นภาษาสคริปท์ที่เขียนง่ายกว่า ทำให้ในไทยมี dev ของ PHP เยอะกว่า แล้วสุดท้ายก็เลยกลายเป็น de facto ไป.. มั๊ง
---------- iPAtS
iPAtS
ความจริงส่วนใหญ่เว็ปที่ใช้ PHP โดนแฮกกันนี่เพราะใช้ script สำเร็จรูป อย่าง CMS หรือเว็ปบอร์ด แล้วมีการค้นพบ security bug และเจ้าของเว็ปไม่อัพเดท Patch กัน ซึ่งเพราะมีเว็ปจำนวนมากที่ใช้ script สำเร็จรูปเดียวกัน และไม่อัพเดท patch จึงไม่น่าแปลกที่จำนวนเว็ปที่โดนลองของมีมาก
การโดนแฮกที่ว่านี่ต้องแยกออกจากบักของ apache และ PHP ครับ เพราะเป็นข้อบกพร่องของ script และคนดูแลเว็ปเอง
ต่อให้คุณเขียน jsp ถ้าเขียนไม่ดี แล้วบังเอิญเว็ปคุณเป็นที่หมายตาของ hacker ก็โดนได้เหมือนกัน
Ford AntiTrust, ipats : ใช่เลยครับ PHP หา Server ราคาถูกง่าย เขียนง่าย ทำงานรวดเร็ว ไม่ปลอดภัยก็ Backup บ่อย ๆ ผมเองก็ Backup เกือบทุกวันเหมือนกัน แบบว่าวิตกจริต
BioLawCom.De
เขียน php ให้ปลอดภัยยากกว่าเขียน java ให้ปลอดภัยในระดับเดียวกัน เพราะ
1. php ให้ความสะดวกสบายจนทำให้โปรแกรมเมอร์เผลอได้ง่ายกว่า ผลของการเผลอใน php มักร้ายแรงกว่า java เพราะสามารถส่งโค้ดมารันได้เนื่องจากเป็นสคริปต์ 2. มีหนังสือ php ในท้องตลาดมากมาย แต่ไม่มีซักเล่มที่สอนว่าเขียนยังไงถึงจะปลอดภัย
ส่วนประเด็น CMS ผมก็ยังคงเชื่อว่าผู้พัฒนาควรใส่ใจเรื่องความปลอดภัยเป็นเรื่องสำคัญ เมื่อพบข้อผิดพลาดต้องประกาศให้ผู้ใช้ทราบให้เร็วที่สุด ผู้ใช้มีหน้าที่อัพเดตทันที
โดยส่วนตัว (ส่วนตัวมากๆ) ผมไม่ชอบ php เอาซะเลยเพราะแทบจะไม่มีความดีให้เล็งเห็น จนกระทั้งมาเจอ Drupal ถึงเริ่มเข้าใจว่า php ก็ยังสามารถนำมาเขียนโปรแกรมที่ดีได้ ข้อแม้เดียวก็คือการออกแบบที่เรียบง่าย สะอาด ปลอดภัย และยืดหยุ่น Drupal มีครบหมดทุกอย่าง เป็นสาเหตุเดียวที่ผมยังเก็บ php ไว้
ในกรณีของเวบส่วนตัว หรือเวบที่เช่าพื้นที่ร่วมกับเวบอื่น ผมไม่คิดว่าจะมีใครเลือกทำ blog ส่วนตัวด้วย java เพราะมันเป็นงานคนละระดับ java เหมือนช้างน่ะครับ เอามาขี่จับตั๊กแตนก็กระไรอยู่ php เป็นแค่รองเท้าใส่แล้ววิ่งจับตั๊กแตนสบาย เอาไว้จะทำยุทธหัตถีแล้วค่อยขี่ช้างดีกว่า ปัญหาใหญ่สุดคือราคา... ในเมื่อตัวเลือกของการเช่าเวบคือ php ผลสุดท้ายเลยหนีไม่พ้น cms/webboard ที่มีอยู่ทั่วไป แค่จะหาเครื่องที่มี python/ruby ยังยากเลยครับ
ทั้งหมดนี้เป็นความเห็นส่วนตัว โปรดใช้วิจารณญาณก่อนเชื่อ
อันนี้ตอบคุณ Gmz นะครับ อาจจะช้าไปบ้าง
ยิ่งผ่านตาคนมากก็ยิ่งทำให้ปลอดภัยมากขึ้นครับ เพราะเมื่อจำนวนตามากก็สามารถข้อผิดพลาดไดมากกว่า และแก้ไขข้อผิดพลาดได้ดีกว่าคนกลุ่มน้อยอยู่แล้ว
สำหรับที่ คุณ bow_der_kleine กล่าวว่า่ "ระบบที่ดี และปลอดภัยจริง ๆ คือระบบที่ทุกคนรู้ครับว่ามันทำงานยังไง และรู้อย่างละเอียดด้วย แต่ไม่สามารถเจาะเข้าไปในระบบได้" ยกตัวอย่างง่ายๆก็พวก Encrpytion Algorithm ต่างๆนั่นแหละครับ ทุกคนก็รู้ว่ามันทำงานยังไง แต่ก็หาวิธี crack มันยากอยู่ดี
sugree : php ผมว่าตัวมันเองตัวเดียวเหมาะจะทำแค่ web app หรือแค่ web front end มากกว่า
onedd.net
เรื่อง share hosting สำหรับ java มันหายากในไทยก็ยังงี้แหละครับ ถ้ามีก็ราคาแพง จะออกไปเป็นแนว VPS หรือทำเป็น dedicated Server ไปเลยมากกว่า เมืองนอกก็จะเป็นอย่างนี้ แล้วมันก็สมเหตุสมผลที่เป็นอย่างนี้
โดยธรรมชาติของจาวาที่โหลดคลาสเก็บไว้เพื่อรองรับการให้บริการจำนวนมากๆ ก็ทำให้เป็นข้อเสียสำหรับ share hosting ที่ต้องสงวน memory ไว้ไปแชร์กับคนอื่นหลายๆ คน ทั้งเรื่องเวลา start tomcat ขึ้นมา memory ก็พุ่งปรี๊ดแล้ว พวก share hosting เค้ามองว่าไม่คุ้มจะทำ ถ้าต้องรวมเอาบริการนี้อยู่ในชุดเดียวกับ php ส่วนพวกที่ตั้งใจจะทำ share hosting สำหรับจาวาก็พอมีนะ ผมเข้าใจว่าเค้าเอาเครื่องใหญ่ๆ ยกให้เลย
สรุปแล้วสำหรับงานเล็กๆ php ไปแหละ ถ้าเขียนเป็นแล้วไม่ซีเรียสมาก ถ้า concern เยอะๆ scale ใหญ่ๆ ระดับงาน enterprise ค่อยมาพิจารณาจาวา ซึ่งองค์กรใหญ่ๆ ที่คิดจะใช้ เค้าไม่สนใจ share hosting อยู่แล้ว เค้ามีงบมากพอที่จะทำ VPS หรือ dedicated Server แล้วเค้าควบคุมได้ทุกอย่าง