สมัยนี้เวลาทำเว็บหรือระบบอะไรสักอย่าง ต้องคิดเสมอว่า

Katanyoo Ubalee
Jul 26, 2017 · 1 min read
  • มีคนมา scan port แน่ ๆ อย่าลืม firewall
  • ssh ตั้งรหัสให้ยาก ๆ หรือไม่ก็ใช้ public key ไปเลย
  • มี request แปลก ๆ เข้ามาตลอดเวลา
  • โดนยิงแน่นอนล้าน % ทำ rate limit ไว้ด้วย
  • มี input แปลก ๆ เข้ามาแน่นอนถึงแม้ว่าจะ validate ที่ frontend แล้ว อย่าลืม validate อีกที ที่ backend ด้วย
  • logout ต้อง logout จริง ๆ ไม่ใช่แค่ลบค่าแค่บน client
  • UGC โดน XSS แน่นอน อย่าลืม sanitize
  • สมัยนี้ไม่น่ามีคนใช้ http ละมั้ง ?
  • backend ต่อ database ถ้าไม่ใช่ internal network ให้ใช้ tls เสมอ หรือถ้า database ไม่ support ให้ต่อผ่าน tls proxy เสมอ
  • backend คุยกันเอง ถ้าไม่ใช่ internal network ให้คุยผ่าน https เสมอ (ใช้ self-signed ก็ได้ แต่ verify ca ด้วย)
  • Cookie ใส่ HttpOnly + Secure (+ SameSite) ด้วย
  • ใส่ HSTS ด้วย ถ้าเป็นไปได้ใช้ includeSubDomains (+ preload) ไปเลย
  • อย่าเก็บรหัสผ่านตรง ๆ ลง database (สมัยนี้ไม่น่ามีคนทำแบบนี้แล้วมั้ง) แล้วก็อย่าใช้ hash function ที่ไม่ปลอดภัย มา hash password (เช่น md5 เลิกใช้ได้แล้ว)
  • hash session id ก่อนเก็บลง database ด้วยก็ดี เวลามีคนอ่าน database จะได้เอา session มาใช้ไม่ได้
  • ระบบ authen ควรเป็น stateful จะได้ revoke ได้
  • ถ้าไม่ได้ทำ open api, cors เปิดแค่เว็บเราก็พอ ไม่ต้องใจดีเปิดให้ทุกคนใช้
  • อย่าลืม verify Origin/Referer ด้วย (Referer นะ ไม่ใช่ Referrer)
  • normalize email ก่อนเก็บลง database ด้วย!!!
  • พวก public static file ตั้งชื่อให้ไม่ซ้ำแล้วใส่ cache control จัดเต็มไปเลย
  • http server อย่าลืมใส่ read/write/idle timeout ด้วย
  • อ่าน data จาก user (json, form, ฯลฯ) ให้ limit size ด้วย (เช่นใช้ LimitReader มาครอบ body)
  • SQL Injection คงไม่ต้องพูดถึงละมั้ง คงไม่มีใครใช้ string concat หรอกนะ
  • ระวังเรื่อง memory leak ด้วย
  • auto backup database ทุกวัน
  • ก่อนทำอะไรกับ database ให้รัน backup ก่อนเสมอ
  • อย่าเอา credential push ขึ้น git ทั้ง public และ private repo ถึงลบแล้ว มันก็จะอยู่ใน history (นอกจากจะ force push แก้ history)

เดบิต : ไปเจอมาใน facebook จำไม่ได้ละ

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade