รีวิวโค้ดเน้นความปลอดภัยอบรมการเขียนโปรแกรม

รีวิวโค้ดที่เน้นจุดอ่อนด้านความปลอดภัย

ส่งมอบเริ่มต้น 1 วันรวมการแก้ไขตรวจสอบคุณภาพ
แพ็กเกจ
การคุ้มครองการชำระเงินรายละเอียด
  • การแก้ไขภายในแพ็กเกจไม่มีค่าใช้จ่าย
  • หากคุณไม่ตอบกลับภายใน 3 วันหลังส่งมอบ งานจะถูกยอมรับโดยอัตโนมัติ
สั่งซื้อ · ฿1,190

เงินจะถูกพักไว้เมื่อคุณชำระ และจะถูกโอนก็ต่อเมื่อคุณยอมรับงานแล้วเท่านั้น

รีวิวโค้ดที่เน้นจุดอ่อนด้านความปลอดภัย

ตัวอย่างผลงาน

ตัวอย่างของแพ็กเกจสแตนดาร์ด

รีวิวโค้ด: สคริปต์ Python นำเข้าออร์เดอร์ของร้านออนไลน์ขนาดเล็ก

โค้ดทำอะไร

  1. อ่าน orders.csv จากไฟล์ที่ส่งออกจากร้าน
  2. ในแต่ละบรรทัดออร์เดอร์ หาสินค้าตาม SKU ใน stock.xlsx แล้วหักจำนวน
  3. เขียนสต็อกที่อัปเดตกลับ และบันทึกยอดรวมลง import_log.txt

โครงสร้างชัดเจนและตั้งชื่อฟังก์ชันได้ดี ปัญหาส่วนใหญ่เกิดจากข้อมูลนำเข้าที่ไม่เป็นไปตามที่สคริปต์คาดไว้

บั๊กและจุดอ่อน

#บรรทัดความรุนแรงปัญหา
148สูงCSV เดียวกันนำเข้าซ้ำได้ ไม่มีการเช็กเลขออร์เดอร์ที่ประมวลผลแล้ว น่าจะเป็นสาเหตุหลักที่สต็อกติดลบ
272สูงint(row["qty"]) ล่มเมื่อเจอค่าว่างหรือ "2.0" จากออร์เดอร์ที่คืนเงิน
395กลางค้นหา SKU แบบแยกตัวพิมพ์เล็ก-ใหญ่: "gt-101" กับ "GT-101" ถูกมองเป็นคนละสินค้า
4130กลางเปิดไฟล์โดยไม่ระบุ encoding="utf-8" ชื่อสินค้าภาษาไทยจึงเพี้ยนบน Windows
5201ต่ำexcept: เปล่า ๆ ซ่อนข้อผิดพลาดจริง ทำให้ log ไม่มีประโยชน์

โค้ดที่แก้แล้ว

ปัญหาที่ 1: ข้ามออร์เดอร์ที่นำเข้าแล้ว

processed = load_processed_ids("processed_orders.txt")
for row in reader:
    if row["order_id"] in processed:
        continue
    # ... ตรรกะเดิม ...
    processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)

เหตุผล: แต่ละออร์เดอร์ถูกหักสต็อกครั้งเดียว แม้จะรันสคริปต์กับไฟล์เดิมซ้ำ

ปัญหาที่ 2: อ่านจำนวนอย่างปลอดภัย

raw = (row.get("qty") or "").strip()
try:
    qty = int(float(raw))
except ValueError:
    log.warning("ออร์เดอร์ %s: จำนวนไม่ถูกต้อง %r ข้ามไป", row["order_id"], raw)
    continue

เหตุผล: บรรทัดที่คืนเงินหรือคืนบางส่วนจะถูกข้ามพร้อมบันทึกที่ชัดเจน แทนที่จะหยุดการนำเข้าทั้งหมด

ปัญหาที่ 3: ทำ SKU ให้เป็นรูปแบบเดียวกัน

sku = row["sku"].strip().upper()

ใช้ .strip().upper() แบบเดียวกันตอนสร้างดิกชันนารีสต็อกด้วย

สไตล์และความอ่านง่าย

  • process() ยาว 90 บรรทัด ควรแยกเป็น read_orders, apply_to_stock, write_report
  • เปลี่ยนเลขคอลัมน์ตายตัว (row[7]) เป็นชื่อหัวคอลัมน์

โปรดทดสอบ การแก้แต่ละจุดกับสำเนาไฟล์ของคุณ: เราอ่านโค้ดแต่ไม่ได้รันจริง

ลูกค้า: เจ้าของร้านชาออนไลน์ ที่เขียนสคริปต์ Python 310 บรรทัด เพื่อนำออร์เดอร์จากไฟล์ CSV ที่ส่งออกจากร้านเข้าสเปรดชีตสต็อก ปัญหาที่แจ้งมา: "บางทีสต็อกติดลบ และสคริปต์ค้างกับบางไฟล์"

ลูกค้าและข้อมูลทั้งหมดเป็นเรื่องสมมติ

เกี่ยวกับบริการนี้

ช่องโหว่ด้านความปลอดภัยจำนวนมากมองเห็นได้จากในโค้ดเลย เช่น คำสั่ง SQL หรือ shell ที่สร้างจากอินพุตของผู้ใช้ ผลลัพธ์ที่แสดงโดยไม่ escape รหัสผ่านที่เก็บด้วยแฮชแบบเร็ว การตรวจที่ยืนยันว่าผู้ใช้เป็นใครแต่ไม่ตรวจว่าเข้าถึงอะไรได้บ้าง และคีย์ที่เขียนไว้ในซอร์สโค้ด เราอ่านโค้ดของคุณโดยใช้ OWASP Top 10 เป็นเช็กลิสต์ อธิบายจุดอ่อนแต่ละจุดและวิธีที่อาจถูกนำไปใช้โจมตี และเรียงตามความเสี่ยง ทุกข้อค้นพบมาพร้อมส่วนของโค้ดที่แก้ไขแล้วด้วยรูปแบบที่ปลอดภัยสำหรับภาษาของคุณ

สิ่งที่รวมอยู่ในบริการ

  • สิ่งที่คุณจะได้รับรีวิวเป็นลายลักษณ์อักษรในหน้าคำสั่งซื้อ: จุดอ่อนเรียงตามความเสี่ยงพร้อมคำอธิบายแต่ละจุด และส่วนของโค้ดที่แก้ไขแล้วด้วยรูปแบบที่ปลอดภัย แพ็กเกจพรีเมียมเพิ่มเช็กลิสต์สั้น ๆ สำหรับเสริมความปลอดภัยให้ส่วนอื่นของโปรเจกต์
  • InjectionSQL, shell และ template injection
  • การ escape ผลลัพธ์ความเสี่ยง cross-site scripting
  • การตรวจสิทธิ์การเข้าถึงใครเห็นและแก้ไขอะไรได้บ้าง
  • รหัสผ่านและข้อมูลลับการแฮชและการแยกคีย์ออกจากโค้ด
  • ข้อค้นพบเรียงตามระดับแก้จุดที่ร้ายแรงที่สุดก่อน

วิธีการทำงาน

  1. 1
    รายละเอียดงานคุณวางส่วนที่อ่อนไหวของโค้ด
  2. 2
    การอ่านเราตรวจเทียบกับ OWASP Top 10
  3. 3
    รีวิวคุณได้รับข้อค้นพบเรียงตามระดับพร้อมวิธีแก้

สิ่งที่เราต้องการจากคุณ

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

เราจะถามคุณว่า:

  • ใช้ภาษาและเฟรมเวิร์กอะไร
  • ส่วนใดจัดการอินพุตของผู้ใช้ การเข้าสู่ระบบ หรือการชำระเงิน
  • ใครใช้แอปนี้
  • มีเหตุการณ์หรือคำเตือนเฉพาะที่ทำให้ต้องรีวิวครั้งนี้หรือไม่

เปรียบเทียบแพ็กเกจ

แพ็กเกจเบสิกโค้ดไม่เกิน 100 บรรทัด฿510สแตนดาร์ดโค้ดไม่เกิน 400 บรรทัด฿1,190พรีเมียมไม่เกิน 1,000 บรรทัด พร้อมเช็กลิสต์เสริมความปลอดภัย฿2,346
กำหนดส่ง1 วัน2 วัน3 วัน
การแก้ไข123
จำนวนบรรทัดของโค้ดไม่เกิน 100ไม่เกิน 400ไม่เกิน 1,000
ส่วนของโค้ดที่แก้ไขแล้วมีมีมี
เช็กลิสต์เสริมความปลอดภัยไม่มีไม่มีมี
สั่งซื้อ เบสิกสั่งซื้อ สแตนดาร์ดสั่งซื้อ พรีเมียม

การคุ้มครองการชำระเงิน

คุณชำระเงินเมื่อสั่งซื้อ แต่เงินจะถูกโอนเฉพาะสำหรับงานที่ยอมรับแล้วเท่านั้น

  • ราคาคงที่ราคาแพ็กเกจจะไม่เปลี่ยนแปลงหลังจากคุณชำระเงิน
  • เงินถูกพักไว้เมื่อคุณชำระเงิน ยอดเงินจะถูกพักไว้เท่านั้น และจะถูกโอนออกเมื่อคุณยอมรับงานแล้ว
  • ตรวจสอบก่อนส่งมอบผลงานทุกชิ้นผ่านการตรวจสอบคุณภาพก่อนถึงมือคุณ และคุณจะเห็นผลงานในหน้าคำสั่งซื้อก่อนยอมรับงาน
  • แก้ไขฟรีขอแก้ไขภายในขอบเขตรายละเอียดงานของคุณได้ตามจำนวนครั้งที่แพ็กเกจกำหนด
  • ยอมรับงานหลัง 3 วันหากภายใน 3 วันหลังส่งมอบ คุณไม่ได้ยอมรับงานหรือขอแก้ไข งานจะถูกยอมรับโดยอัตโนมัติ หากคุณเขียนข้อความในแชทคำสั่งซื้อหลังส่งมอบ คำสั่งซื้อจะรอไว้ก่อน เมื่อเราตอบกลับแล้ว เราอาจเริ่มนับ 3 วันใหม่ และจะแจ้งให้ทราบในแชท
  • ทำใหม่หรือคืนเงินเต็มจำนวนหากผลงานไม่ตรงตามรายละเอียดงานและการแก้ไขยังไม่ช่วย หรืองานใช้เวลาเกินกำหนดส่งมากกว่าสองเท่า ให้เขียนแจ้งในแชทคำสั่งซื้อ เราจะทำงานใหม่หรือคืนเงินให้เต็มจำนวน
วิธีการทำงาน →

คำถามและคำตอบ

นี่คือการทดสอบเจาะระบบหรือใบรับรองความปลอดภัยหรือไม่

ไม่ใช่ เราอ่านโค้ดที่คุณส่งมาและไม่โจมตีหรือสแกนระบบจริงของคุณ บริการนี้จึงไม่ได้ทดแทนการตรวจสอบอย่างเป็นทางการในกรณีที่จำเป็นต้องมี

ควรส่งรหัสผ่านหรือคีย์หรือไม่

ห้ามเด็ดขาด แทนที่ด้วยข้อความแทนที่ หากมีคีย์จริงอยู่ในโค้ดแล้ว ให้เปลี่ยนคีย์ใหม่

รันโค้ดของฉันหรือไม่

ไม่ เราอ่านอย่างละเอียดและวิเคราะห์ว่าโค้ดทำงานอย่างไร แต่ไม่ได้รันโค้ด โปรดทดสอบทุกการแก้ไขที่แนะนำในโปรเจกต์ของคุณเอง

แพ็กเกจ
สั่งซื้อ · ฿1,190· 2 วัน