ค้นหาละเอียด: สื่อประกอบการสอน เราได้วิจัย และ พัฒนา และออกแบบมาเพื่อให้ช่วยครูในการสอนที่ง่าย และมีประสิทธิภาพมากขึ้น 1 - 12 / 21 คู่มือครู หนังสือเรียน รายวิชาพื้นฐาน ภาษาอังกฤษ Upload... วันที่ 19/11/2021 ขนาดไฟล์ 0. 00 Kb. แบบฝึกหัด รายวิชาพื้นฐาน ภาษาอังกฤษ Upload ม.... 18/06/2021 16/02/2021 02/02/2021 Kb.
php phpinfo(); แล้ว upload file ด้วยคำสั่ง $ curl -0 -F ";type=image/gif" Upload: Size: 0. 0166015625 Kb เย้ ทำได้แล้วปัญหาที่ 1:) เรามาต่อปัญหาที่ 2 กันเลยดีกว่า ปัญหานี้ผมกำหนดให้ type ของไฟล์เป็น image/png แต่คราวนี้จะมีอีกปัญหาหนึ่งคือ $info = getimagesize($_FILES["file"]["tmp_name"]); if ($info == FALSE) { echo "Invalid image file";} else if ($info["mime"]! = "image/png") { echo "Image is not PNG";} จาก code จะเห็นว่า คราวนี้มีการลองเปิดไฟล์รูปว่าเป็นไฟล์รูปชนิดไหน ดังนั้นถ้าเราทำแบบปัญหาที่ 1 จะได้ผลลัพธ์ดังนี้ $ curl -0 -F ";type=image/png" Upload: Type: image/png Invalid image file. จากผลคือ php ไม่สามารถเปิดไฟล์รูปได้ เพราะไฟล์ของเราเป็น php code ธรรมดา ดังนั้นสิ่งที่เราต้องทำคือ ให้ php เปิดไฟล์เราแบบไฟล์รูปได้ และ php สามารถรัน php code ได้ แล้วจะทำอย่างไรละ:S เวลาเราเขียน php ในหลายครั้งเราเขียนผสมกับ html code โดยส่วนไหนจะให้ php ทำงานก็เปิดด้วย php และปิดด้วย?
1 200 OK Date: Sat, 04 Dec 2010 05:32:41 GMT Server: Apache Content-Length: 120 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html Upload: Type: image/gif Size: 0. 166015625 Kb Temp file: C:\WINDOWS\Temp\ Stored in: upload/ ข้างบนเป็นข้อมูลที่เอามาจาก Wireshark และตัวอักษร. ในข้อมูลหมายถึง byte ที่ไม่สามารถแสดงผลเป็นตัวอักษรได้ หลังจากเห็น request จาก Firefox ไปแล้ว เรามาเริ่มเลยดีกว่า ปัญหาที่1 นั้นมีการตรวจสอบเพิ่งแค่ว่า $_FILES["file"]["type"] นั้นเป็นชนิดที่เราอนุญาติหรือไม่ ถ้าเราสังเกต request ของ Firefox จะเห็นว่ามีการส่ง "Content-Type: image/gif" ไปด้วย ดังนั้นถ้าเราลองแก้ค่านี้ดู โดยผมจะใช้ curl (ถ้าใครไม่ถนัด command line ก็อาจจะใช้ Tamper Data ที่เป็น add-on ของ Firefox) $ curl -0 -F ";type=foo/bar" Invalid file $ โดยจะมี HTTP request และ response เป็น (จาก Wireshark) POST / HTTP/1. 0 User-Agent: curl/7. 19. 7 (i486-pc-linux-gnu) libcurl/7. 7 OpenSSL/0. 8k zlib/1. 3. 3 libidn/1.
ค้นหา
64453125 Kb pwned.. สำเร็จแล้ว และถ้าเราลองเปิดไฟล์ php ที่ upload ขึ้นไปด้วย web browser คุณจะผมว่ามีตัวอักษรที่อ่านไม่ออก แล้วตามด้วยผลของ php code คราวนี้ก็ถึงวิธีป้องกัน เอาแบบสั้นๆ นะครับ (ขี้เกียจเขียน) ก็คือให้ตรวจสอบนามสกุลของไฟล์ (file extension) โดยอาจใช้คำสั่ง pathinfo() เพราะว่าโดย default ตัว web server จะใช้ php interpreter กับไฟล์ที่มี extension เป็น php แต่ถ้ามีการแก้ไขพวกนี้ที่ web server คุณก็ต้องถาม admin ของ server นั้นๆ เอง
อาทิตย์หนึ่งผ่านไปจาก post เดิมที่ถามไว้ เกี่ยวกับ PHP file upload วันนี้ผมจะมาเฉลย ใครที่อยากทำเองก็อย่าอ่านต่อละกัน
ก่อนที่จะไปดูเฉลย ผมจะให้ดู HTTP request กับ response สำหรับการ upload file ในปัญหานี้ โดยผมได้เปลี่ยนจาก
เป็น "\n" ใน เพื่อให้อ่านง่า่ยขึ้นในนี้
POST / HTTP/1. 1
Host: 192. 168. 1. 100
User-Agent: Mozilla/5. 0 (X11; U; Linux i686; en-US; rv:1. 9. 2. 12) Gecko/20101027 Ubuntu/10. 04 (lucid) Firefox/3. 6. 12
Accept: text/html, application/xhtml+xml, application/xml;q=0. 9, */*;q=0. 8
Accept-Language: en-us, en;q=0. 5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1, utf-8;q=0. 7, *;q=0. 7
Keep-Alive: 115
Connection: keep-alive
Referer: Content-Type: multipart/form-data; boundary=---------------------------194488808416516608941591502886
Content-Length: 390
-----------------------------194488808416516608941591502886
Content-Disposition: form-data; name="file"; filename=""
Content-Type: image/gif!......., ;....... `.. ". (. [$.. ;
-----------------------------194488808416516608941591502886--
HTTP/1.
เฉลยแบบฝึกหัด คณิตศาสตร์ พื้นฐาน ชั้น ม. 4 บทที่ 4 เฉลยแบบฝึกหัด คณิตศาสตร์ พื้นฐาน ชั้น ม. 4 บทที่ 4 ความน่าจะเป็น เฉลยแบบฝึกหัด คณิตศาสตร์ พื้นฐาน ชั้น ม. 4 แบบฝึกหัด 4. 2 เฉลยคณิต(พื้น) ม. 2 ความน่าจะเป็น ข้อ 1, 3, 5 // เฉลยคณิต(พื้น) ม. 2 ความน่าจะเป็น ข้อ 2, 4, 6 // เฉลยคณิต(พื้น) ม. 2 ความน่าจะเป็น ข้อ 7, 8 เฉลยแบบฝึกหัด คณิตศาสตร์ พื้นฐาน ชั้น ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 1, 2 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 3-5 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 7-9 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 10-14 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 15-17 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 18 – 22 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 23 - 25 เฉลยคณิต(พื้น) ม. 4 แบบฝึกหัดท้ายบท บทที่ 4 ความน่าจะเป็น ข้อ 26 – 27
หนังสือ Up Stream ม. 4-6