Laravel Security

หนึ่งในเรื่องที่ต้องคิดถึงในการเลือกใช้ Framework ที่ทุกคนคิดกันคือเรื่อง Security หรือการรักษาความปลอดภัย เพราะหลายคนก็คิดว่ามันเป็นเรื่องที่ต้องเจอกัน มีทุกงานเขียนทุกงาน เมื่อเราเลือก Framework มาลดภาระงาน งานนี้ก็ควรจะเป็นหน้าที่ของเขาด้วย วันนี้ผมจะไล่ทีละเรื่องให้ทุกคนฟังกัน ข้อมูลส่วนนี้พิมพ์จากการใช้งาน Laravel 3 นะครับ

1. CSRF protection หรือการปลอมแปลง http request ที่เรียกข้ามเว็บไซต์ เรื่องนี้ Laravel มีป้องกันอยู่แล้ว โดยเป็นการสร้าง Token ไว้ตรวจสอบ หาอ่านได้ที่ CSRF protection

2. Cookie Security ส่วนมากเรามักเจอคือการแก้ไขคุ๊กกี้ ซึ่งจุดนี้ Laravel ก็มีป้องกันไว้แล้วเช่นกัน โดยสร้าง signature hash มาตรวจสอบ ถ้ามีการแก้ไขค่า hash จะไม่ตรงกัน หาอ่านได้ที่ Cookies

3. SQL-Injection เรื่องนี้ไม่ต้องท้าวความเลย มีป้องกันไว้เหมือนกัน โดย Laravel จะทำงานผ่าน PDO หาอ่านได้ที่ PDO/Prepared statements and stored procedures สรุปให้สั้นๆ คือ ถ้าเรียกทำงานผ่าน Fluent หรือ Eloquent มันก็จะจัดการให้เสร็จ ส่วนถ้าใครอยากเขียน query ดิบๆ ก็ควรเขียนตามไกด์อันนี้ Raw Queries

4. XSS หรือการแทรกโค้ดไม่พึ่งประสงค์ลงหน้าเว็บ เรื่องนี้ Laravel ไม่มีการป้องกันครับ ซึ่งจริงๆ ถามว่าเป็นเรื่องดีไหมมันก็ดีนะครับ เพราะความต้องการปลีกย่อยบางคนไม่เหมือนกัน และ PHP ก็มีฟังค์ชั่นพื้นฐานมาเพื่อป้องกันเรื่องพวกนี้แล้วอย่าง strip_tags() and htmlentities() ส่วนถ้าใครไม่อยากปวดหัวอะไรมากมาย ได้มีคนทำ bundle HTMLPurifier ไว้แล้ว

หวังว่าโพสนี้จะช่วยลดความกังวลในการเลือกใช้ Laravel นะครับ