แก้ไขปัญหาโดยใช้โหมดเอเจนต์ของ GitHub Copilot

เสร็จสมบูรณ์เมื่อ

หลังจากวิเคราะห์ปัญหาด้านความปลอดภัยโดยใช้ตัวแทน Ask แล้ว คุณก็พร้อมที่จะดําเนินการแก้ไข เอเจนต์ของ GitHub Copilot ช่วยให้คุณสามารถดําเนินการแก้ไขที่ซับซ้อนได้อย่างปลอดภัยในขณะที่มั่นใจได้ว่าฟังก์ชันการทํางานจะยังคงอยู่และปรับปรุงคุณภาพของโค้ด

Note

พิจารณาใช้ตัวแทน Ask เพื่อวิเคราะห์ปัญหาด้านความปลอดภัยและกําหนดแผนการแก้ไขก่อนที่จะใช้ตัวแทนเพื่อดําเนินการเปลี่ยนแปลง วิธีการนี้ช่วยให้มั่นใจได้ว่าการปรับโครงสร้างใหม่จะดําเนินการอย่างรอบคอบและปลอดภัย

โหมดเอเจนท์คืออะไร?

โหมดเอเจนต์ของ GitHub Copilot เป็นหนึ่งในสามเอเจนต์ในตัวใน GitHub Copilot Chat ซึ่งแตกต่างจากตัวแทนถามซึ่งให้คําแนะนําและคําแนะนําในแผงแชทโหมดตัวแทนจะใช้การเปลี่ยนแปลงเป็นการแก้ไขโดยตรงในไฟล์โค้ดของคุณ

ความสามารถของโหมดเอเจนต์ประกอบด้วย:

  • การแก้ไขไฟล์ด้วยการแก้ไขโค้ดที่แม่นยํา
  • ใช้การเปลี่ยนแปลงในหลายไฟล์พร้อมกัน
  • เรียกใช้การทดสอบเพื่อตรวจสอบการเปลี่ยนแปลง
  • ดําเนินการคําสั่งตามคําแนะนําของคุณ
  • ทําความเข้าใจบริบทและการพึ่งพาของโครงการ
  • การรักษาความสอดคล้องทั่วทั้งฐานโค้ด

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

ชนิดเอเจนต์สําหรับการแก้ไขความปลอดภัย

GitHub Copilot มีเอเจนต์หลายประเภทที่ทํางานในสภาพแวดล้อมที่แตกต่างกัน สําหรับเวิร์กโฟลว์การแก้ไขความปลอดภัย สองประเภทที่เกี่ยวข้องมากที่สุดคือ:

  • ตัวแทนท้องถิ่น (ตัวแทนใน VS Code): ทํางานแบบโต้ตอบในตัวแก้ไขพร้อมการเข้าถึงพื้นที่ทํางาน เครื่องมือ และโมเดลของคุณอย่างเต็มรูปแบบ นี่คือประเภทเอเจนต์ที่อธิบายไว้ในหน่วยนี้ ซึ่งเหมาะอย่างยิ่งสําหรับการแก้ไขความปลอดภัยทีละขั้นตอน ซึ่งคุณจะตรวจสอบการเปลี่ยนแปลงแต่ละครั้ง
  • Copilot Cloud Agent: ทํางานจากระยะไกลและผสานรวมกับคําขอดึงข้อมูล GitHub คุณสามารถกําหนดปัญหา GitHub ให้กับตัวแทนระบบคลาวด์ได้โดยตรง ซึ่งจะค้นคว้าฐานรหัส สร้างแผนการใช้งาน และทําการเปลี่ยนแปลงโค้ดในสาขาเพื่อตรวจสอบของคุณ ใช้ได้กับแผน Copilot Pro+, Business และ Enterprise

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

ระดับสิทธิ์

ก่อนเริ่มเซสชันการแก้ไข ให้เลือกระดับสิทธิ์ที่ตรงกับความซับซ้อนและความเสี่ยงของงาน

ระดับสิทธิ์ Description แนะนําสําหรับ
การอนุมัติเริ่มต้น เฉพาะเครื่องมือแบบอ่านอย่างเดียวและปลอดภัยเท่านั้นที่ทํางานโดยไม่มีการยืนยัน การแก้ไขไฟล์และคําสั่งเทอร์มินัลทั้งหมดต้องได้รับการอนุมัติจากคุณ การแก้ไขที่ละเอียดอ่อนด้านความปลอดภัย — การกํากับดูแลสูงสุด
การอนุมัติข้าม อนุมัติการเรียกใช้เครื่องมือทั้งหมดโดยอัตโนมัติโดยไม่มีกล่องโต้ตอบการยืนยัน การแก้ไขเป็นประจําที่คุณเชื่อถือแผน
Autopilot (พรีวิว) อัตโนมัติเต็มรูปแบบ — อนุมัติเครื่องมืออัตโนมัติและตอบกลับอัตโนมัติจนกว่างานจะเสร็จสมบูรณ์ ไม่แนะนําสําหรับการเปลี่ยนแปลงความปลอดภัย

เลือกระดับสิทธิ์จากตัวเลือกสิทธิ์ในมุมมองแชท สําหรับการแก้ไขด้านความปลอดภัย ขอแนะนําให้ใช้ การอนุมัติเริ่มต้น เพื่อให้คุณสามารถตรวจสอบการแก้ไขไฟล์แต่ละไฟล์ก่อนที่จะนําไปใช้

แก้ไขปัญหาด้านความปลอดภัยโดยใช้เอเจนต์

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

กลยุทธ์ในการแก้ไขปัญหาด้านความปลอดภัย

ต่อไปนี้เป็นกลยุทธ์หลักสําหรับการใช้โหมดเอเจนต์เพื่อแก้ไขปัญหาด้านความปลอดภัย:

  • แก้ไขช่องโหว่ในการแทรก: สั่งโหมดเอเจนต์ให้แทนที่การต่อสตริงด้วยแบบสอบถามที่มีพารามิเตอร์หรือคําสั่งที่เตรียมไว้

  • ใช้การเข้ารหัสที่ปลอดภัย: ให้เอเจนต์อัปเกรดอัลกอริธึมการแฮชที่อ่อนแอโดยใช้ทางเลือกที่ปลอดภัย เช่น bcrypt หรือ Argon2

  • ฆ่าเชื้อการบันทึก: ใช้เอเจนต์เพื่อลบข้อมูลที่ละเอียดอ่อนออกจากคําสั่งบันทึกในขณะที่รักษาข้อมูลการวินิจฉัยที่เป็นประโยชน์

  • ตรวจสอบเส้นทางไฟล์: ให้เอเจนต์เพิ่มการตรวจสอบความถูกต้องของเส้นทางที่เหมาะสมซึ่งป้องกันการโจมตีการข้ามไดเรกทอรี

  • เพิ่มการตรวจสอบอินพุต: ให้ตัวแทนใช้การตรวจสอบอินพุตและการฆ่าเชื้อที่ครอบคลุม

  • รับรองความปลอดภัย: สั่งให้เอเจนต์ตรวจสอบว่าการแก้ไขรักษาการตรวจสอบความปลอดภัยที่มีอยู่ทั้งหมดและไม่ทําให้เกิดช่องโหว่ใหม่

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

เอเจนต์แจ้งให้แก้ไขปัญหาด้านความปลอดภัย

เมื่อใช้เอเจนต์เพื่อแก้ไขปัญหาด้านความปลอดภัย ข้อความแจ้งของคุณควรมีความเฉพาะเจาะจง สามารถดําเนินการได้ และรวมถึงข้อควรพิจารณาด้านความปลอดภัย ต่อไปนี้คือตัวอย่างของข้อความภาษาธรรมชาติที่คุณสามารถรวมไว้ในพร้อมท์ของคุณเมื่อแก้ไขปัญหาด้านความปลอดภัย:

การเตรียมการและความปลอดภัย

พร้อมท์เหล่านี้ช่วยให้คุณสร้างมาตรการความปลอดภัยก่อนที่จะทําการเปลี่ยนแปลงความปลอดภัยกับฐานรหัสของคุณ

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

การดําเนินการแก้ไขขั้นพื้นฐาน

ใช้ข้อความแจ้งเหล่านี้เพื่อแก้ไขช่องโหว่ด้านความปลอดภัยทั่วไปด้วยการแก้ไขที่ตรงไปตรงมา

  • "ปรับโครงสร้างคิวรี SQL ที่เลือกเพื่อใช้คิวรีที่มีพารามิเตอร์แทนการต่อสตริง"
  • "แทนที่การแฮชรหัสผ่าน MD5 ที่เลือกด้วย bcrypt รวมถึงการสร้างเกลือที่เหมาะสม"
  • "ลบข้อมูลที่ละเอียดอ่อนออกจากข้อความการบันทึกที่เลือกในขณะที่ยังคงรักษาค่าการวินิจฉัยไว้"
  • "เพิ่มการตรวจสอบเส้นทางให้กับการดําเนินการไฟล์ที่เลือกเพื่อป้องกันการโจมตีการข้ามไดเรกทอรี"

รูปแบบการแก้ไขขั้นสูง

ข้อความแจ้งเหล่านี้จะแนะนําโหมดเอเจนต์ผ่านการปรับปรุงความปลอดภัยที่ซับซ้อนมากขึ้นซึ่งเกี่ยวข้องกับส่วนประกอบหลายอย่างหรือการเปลี่ยนแปลงทางสถาปัตยกรรม

  • "ปรับโครงสร้างฟังก์ชันการรับรองความถูกต้องที่เลือกเพื่อใช้การรับรองความถูกต้องตามโทเค็นที่ปลอดภัยพร้อมวันหมดอายุที่เหมาะสม"
  • "ใช้การตรวจสอบอินพุตที่ครอบคลุมสําหรับฟังก์ชันการประมวลผลข้อมูลผู้ใช้ที่เลือก"
  • "แทนที่การใช้งานการเข้ารหัสที่อ่อนแอที่เลือกด้วยการเข้ารหัส AES-256 ตามแนวทางปฏิบัติที่ดีที่สุด"
  • "ปรับโครงสร้างการจัดการข้อผิดพลาดที่เลือกเพื่อให้ข้อความที่ใช้งานง่ายในขณะที่บันทึกข้อผิดพลาดโดยละเอียดอย่างปลอดภัย"

คุณภาพและการตรวจสอบความถูกต้อง

ใช้ข้อความแจ้งเหล่านี้เพื่อให้แน่ใจว่าการแก้ไขด้านความปลอดภัยเป็นไปตามมาตรฐานคุณภาพและไม่ทําให้เกิดการถดถอย

  • "หลังจากใช้การแก้ไขด้านความปลอดภัยแล้ว ให้เรียกใช้การทดสอบทั้งหมดและตรวจสอบว่าฟังก์ชันการทํางานยังคงเหมือนเดิม"
  • "ตรวจสอบให้แน่ใจว่ารหัสคงที่เป็นไปตามแนวทางความปลอดภัย C# ของ Microsoft และข้อตกลงการเข้ารหัส"
  • "ตรวจสอบว่าการแก้ไขความปลอดภัยไม่ได้ทําให้เกิดการถดถอยของประสิทธิภาพ"
  • "สร้างการทดสอบหน่วยที่เน้นความปลอดภัยเพื่อตรวจสอบว่าช่องโหว่ได้รับการแก้ไขอย่างเต็มที่"

เวิร์กโฟลว์โหมดเอเจนต์สําหรับแก้ไขปัญหาด้านความปลอดภัย

ทําตามเวิร์กโฟลว์ที่เป็นระบบนี้เพื่อแก้ไขปัญหาด้านความปลอดภัยโดยใช้โหมดเอเจนต์:

ขั้นตอนที่ 1: เตรียมพื้นที่ทํางานของคุณ

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

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

ขั้นตอนที่ 2: ตั้งค่ามาตรการด้านความปลอดภัย

สร้างการทดสอบพื้นฐานก่อนทําการเปลี่ยนแปลงโค้ด เมื่อการอัปเดตโค้ดเสร็จสมบูรณ์ ให้ใช้การทดสอบพื้นฐานเพื่อตรวจสอบว่าฟังก์ชันการทํางานยังคงเหมือนเดิม

ก่อนทําการเปลี่ยนแปลง ให้สร้างการทดสอบเพื่อตรวจสอบพฤติกรรมปัจจุบัน

ตัวอย่างพร้อมท์: "สร้างการทดสอบหน่วยที่ครอบคลุมสําหรับ SearchProducts ฟังก์ชันเพื่อตรวจสอบลักษณะการทํางานปัจจุบันก่อนที่จะใช้การแก้ไขความปลอดภัย"

เอเจนต์สร้างการทดสอบที่บันทึกพฤติกรรมปัจจุบัน ซึ่งเป็นพื้นฐานสําหรับการตรวจสอบความถูกต้อง

Tip

VS Code จะสร้างจุดตรวจโดยอัตโนมัติที่จุดสําคัญระหว่างเซสชันตัวแทน หากการแก้ไขความปลอดภัยทําให้เกิดปัญหาที่ไม่คาดคิด ให้ใช้จุดตรวจสอบเพื่อย้อนกลับไปยังสถานะที่ทราบว่าใช้งานได้โดยไม่สูญเสียงานอื่นๆ สิ่งนี้จะช่วยเสริมกลยุทธ์สาขาฟีเจอร์ของคุณด้วยตัวเลือกการเลิกทําแบบละเอียด

ขั้นตอนที่ 3: เริ่มต้นด้วยการแก้ไขด้านความปลอดภัยที่สําคัญ

การจัดการกับช่องโหว่ที่มีความเสี่ยงสูงสุดก่อนจะช่วยให้มั่นใจได้ว่าปัญหาที่อันตรายที่สุดจะได้รับการแก้ไขทันที

เริ่มต้นด้วยช่องโหว่ที่มีลําดับความสําคัญสูงสุด

ตัวอย่างพรอมต์: "ปรับ SearchProducts โครงสร้างวิธีการเพื่อใช้คิวรีที่มีพารามิเตอร์แทนการต่อสายอักขระ ตรวจสอบให้แน่ใจว่าเวกเตอร์การแทรก SQL ทั้งหมดถูกกําจัดออกไป"

เอเจนต์วิเคราะห์โค้ด แทนที่การต่อสตริงที่มีช่องโหว่ด้วยแบบสอบถามที่มีพารามิเตอร์ และเพิ่มการตรวจสอบอินพุตเพื่อขจัดช่องโหว่ในการแทรก SQL

ขั้นตอนที่ 4: ใช้การเข้ารหัสที่ปลอดภัย

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

ดําเนินการปรับปรุงการเข้ารหัสต่อไป

ตัวอย่างพรอมต์: "แทนที่การแฮชรหัสผ่าน MD5 ใน HashPassword วิธีการด้วยการใช้งาน bcrypt รวมถึงการสร้างเกลือที่เหมาะสม"

เอเจนต์อัปเกรดอัลกอริธึมการแฮชที่อ่อนแอเพื่อความปลอดภัยทางเลือก เช่น bcrypt เพิ่มการตรวจสอบรหัสผ่าน และสร้างวิธีการตรวจสอบ

ขั้นตอนที่ 5: ฆ่าเชื้อการบันทึกและการจัดการข้อผิดพลาด

การนําข้อมูลที่ละเอียดอ่อนออกจากบันทึกจะช่วยป้องกันการเปิดเผยข้อมูลในขณะที่ยังคงรักษาความสามารถในการวินิจฉัยที่จําเป็นสําหรับการดีบัก

แก้ไขปัญหาการเปิดเผยข้อมูล

ตัวอย่างพร้อมท์: "ลบข้อมูลที่ละเอียดอ่อนออกจากคําสั่งการบันทึกในโมดูลการรับรองความถูกต้องในขณะที่รักษาค่าการวินิจฉัยไว้"

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

ขั้นตอนที่ 6: เพิ่มการตรวจสอบเส้นทาง

การตรวจสอบเส้นทางไฟล์จะป้องกันไม่ให้ผู้โจมตีเข้าถึงไฟล์ที่อยู่นอกขอบเขตไดเรกทอรีที่ต้องการ

ใช้การรักษาความปลอดภัยเส้นทางไฟล์

ตัวอย่างพรอมต์: "เพิ่มการตรวจสอบความถูกต้องของเส้นทางที่ครอบคลุมให้กับ SaveFile เมธอดเพื่อป้องกันการโจมตีการข้ามไดเรกทอรี"

เอเจนต์ใช้การตรวจสอบพาธโดยใช้ Path.GetFileName()ตรวจสอบพาธที่ยังคงอยู่ภายในไดเร็กทอรีที่ต้องการ และเพิ่มการตรวจสอบอักขระที่ไม่ถูกต้อง

ขั้นตอนที่ 7: ตรวจสอบความถูกต้องของการเปลี่ยนแปลง

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

หลังจากการแก้ไขความปลอดภัยที่สําคัญแต่ละครั้ง ให้ตรวจสอบความถูกต้องของการเปลี่ยนแปลง

ตัวอย่างพรอมต์: "เรียกใช้การทดสอบหน่วยทั้งหมดและสร้างการทดสอบเฉพาะด้านความปลอดภัยเพื่อตรวจสอบว่าช่องโหว่การแทรก SQL ได้รับการแก้ไขอย่างสมบูรณ์แล้ว"

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

ขั้นตอนที่ 8: ตรวจทานและทําซ้ํา

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

หากพบปัญหา ให้ระบุคําแนะนําเฉพาะสําหรับการปรับแต่ง

ตัวอย่างพรอมต์: "การทดสอบการตรวจสอบความถูกต้องของความยาวรหัสผ่านล้มเหลว อัปเดตการตรวจสอบความถูกต้องเพื่ออนุญาตรหัสผ่านระหว่าง 8 ถึง 128 อักขระ"

เอเจนต์จะวิเคราะห์การทดสอบที่ล้มเหลวและทําการแก้ไขที่จําเป็นเพื่อให้แน่ใจว่าเป็นไปตามข้อกําหนดทั้งหมด

แนวทางที่มีโครงสร้างนี้ช่วยให้มั่นใจได้ว่าการแก้ไขจะดําเนินการอย่างปลอดภัยและเป็นระบบ โดยมีการตรวจสอบความถูกต้องในแต่ละขั้นตอน

ข้อควรพิจารณาด้านความปลอดภัยและคุณภาพ

เมื่อใช้เอเจนต์เพื่อการแก้ไขความปลอดภัย ให้พิจารณาผลกระทบด้านความปลอดภัยและคุณภาพเสมอ:

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

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

พิจารณาแนวทางปฏิบัติด้านความปลอดภัยต่อไปนี้เมื่อแก้ไขช่องโหว่:

  • ตรวจสอบอย่างละเอียด: ตรวจสอบให้แน่ใจว่าการตรวจสอบอินพุตทั้งหมดครอบคลุมและจัดการกับกรณีที่ขอบ
  • รักษาการให้สิทธิ์: ตรวจสอบว่าการแก้ไขด้านความปลอดภัยไม่ได้ข้ามการตรวจสอบสิทธิ์หรือการให้สิทธิ์
  • รักษาการป้องกันในเชิงลึก: ตรวจสอบให้แน่ใจว่าชั้นความปลอดภัยหลายชั้นยังคงเหมือนเดิม
  • ตรวจสอบการขึ้นต่อกัน: ตรวจสอบว่าการแก้ไขด้านความปลอดภัยไม่ได้ทําให้เกิดการขึ้นต่อกันที่มีช่องโหว่
  • ทดสอบอย่างกว้างขวาง: รวมกรณีทดสอบความปลอดภัยทั้งเชิงบวกและเชิงลบ

มาตรฐานคุณภาพของรหัส

การรักษาคุณภาพของโค้ดควบคู่ไปกับการปรับปรุงความปลอดภัยช่วยให้มั่นใจได้ว่าฐานรหัสของคุณยังคงสามารถบํารุงรักษาได้และเป็นมืออาชีพ

รักษาคุณภาพของโค้ดให้สูงโดยปฏิบัติตามหลักเกณฑ์เหล่านี้

  • ปฏิบัติตามข้อตกลง: ตรวจสอบให้แน่ใจว่าโค้ดคงที่เป็นไปตามข้อตกลงการเข้ารหัส C# ของ Microsoft
  • รักษาความสามารถในการอ่าน: ตรวจสอบว่าการแก้ไขความปลอดภัยไม่ส่งผลต่อความชัดเจนของโค้ด
  • การเปลี่ยนแปลงเอกสาร: เพิ่มข้อคิดเห็นที่อธิบายรหัสที่สําคัญด้านความปลอดภัย
  • อัปเดตเอกสารประกอบ: ตรวจสอบให้แน่ใจว่า README นโยบายความปลอดภัย และเอกสาร API สะท้อนถึงการเปลี่ยนแปลง
  • พิจารณาประสิทธิภาพ: ตรวจสอบว่าการปรับปรุงความปลอดภัยไม่ได้ทําให้ประสิทธิภาพลดลงอย่างมาก

แนวทางความปลอดภัยของโหมดตัวแทน

เอเจนท์มีพลังแต่ต้องได้รับการดูแลอย่างระมัดระวัง

ก่อนการแก้ไข

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

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

ระหว่างการแก้ไข

การปฏิบัติตามแนวทางปฏิบัติเหล่านี้ในระหว่างการแก้ไขจะช่วยให้คุณจับและแก้ไขปัญหาที่เกิดขึ้นแทนที่จะค้นพบในภายหลัง

  • ทําการเปลี่ยนแปลงที่เพิ่มขึ้นแทนที่จะเป็นการเปลี่ยนแปลงครั้งใหญ่
  • ตรวจสอบแต่ละขั้นตอนก่อนดําเนินการต่อไป
  • ตรวจสอบโค้ดที่สร้างขึ้นเพื่อความถูกต้องและความปลอดภัย
  • ทดสอบบ่อยๆ เพื่อตรวจพบปัญหาตั้งแต่เนิ่นๆ
  • ตรวจสอบผลข้างเคียงที่ไม่ได้ตั้งใจ
  • ใช้จุดตรวจสอบ Visual Studio Code เพื่อย้อนกลับไปยังสถานะที่ทราบว่าดีหากจําเป็น

หลังการแก้ไข

ขั้นตอนหลังการแก้ไขเหล่านี้จะยืนยันว่าการแก้ไขของคุณเสร็จสมบูรณ์ ถูกต้อง และพร้อมสําหรับการปรับใช้

  • เรียกใช้การทดสอบที่ครอบคลุมรวมถึงการทดสอบความปลอดภัย
  • ดําเนินการตรวจสอบโค้ดกับสมาชิกในทีม
  • ตรวจสอบลักษณะความปลอดภัยโดยใช้เครื่องมือรักษาความปลอดภัย
  • อัปเดตปัญหา GitHub พร้อมรายละเอียดการแก้ไข
  • บันทึกบทเรียนที่ได้เรียนรู้เพื่อใช้อ้างอิงในอนาคต

ปฏิบัติต่อโหมดเอเจนต์ในฐานะผู้ช่วยที่ทรงพลัง

แม้ว่าตัวแทนสามารถทํางานแก้ไขที่ซับซ้อนได้ แต่ก็ต้องมีการกํากับดูแลของมนุษย์:

  • ตรวจสอบการเปลี่ยนแปลงทั้งหมดก่อนยอมรับ
  • ตรวจสอบว่าช่องโหว่ด้านความปลอดภัยได้รับการแก้ไขอย่างสมบูรณ์
  • ตรวจสอบให้แน่ใจว่าไม่มีช่องโหว่ใหม่เกิดขึ้น
  • ทดสอบอย่างละเอียดเพื่อตรวจจับปัญหาที่ละเอียดอ่อน
  • ตรวจสอบการปฏิบัติตามนโยบายความปลอดภัย

เอเจนต์เร่งการแก้ไขความปลอดภัย แต่ไม่ได้แทนที่ความจําเป็นในการตรวจสอบและทดสอบอย่างรอบคอบ

การผสานรวมกับเวิร์กโฟลว์ Git

รวมการเปลี่ยนแปลง Agent เข้ากับเวิร์กโฟลว์ Git ของคุณอย่างราบรื่นโดยใช้เครื่องมือในตัวของ Visual Studio Code

ยอมรับการเปลี่ยนแปลงโดยใช้มุมมองการควบคุมแหล่งที่มา

มุมมองการควบคุมแหล่งที่มาแบบบูรณาการของ Visual Studio Code ช่วยเพิ่มความคล่องตัวในกระบวนการคอมมิตและผลักดันการแก้ไขความปลอดภัยไปยังที่เก็บของคุณ

มุมมองการควบคุมแหล่งที่มาของ Visual Studio Code มีวิธีการแบบบูรณาการในการตรวจสอบและยอมรับการแก้ไขความปลอดภัยของคุณ:

  1. เปิดมุมมอง ตัวควบคุมแหล่งที่มา โดยเลือกไอคอน ตัวควบคุมแหล่งที่มา ในแถบกิจกรรม หรือกด Ctrl+Shift+G

  2. ตรวจสอบการเปลี่ยนแปลงที่ระบุไว้ใน "การเปลี่ยนแปลง" เพื่อยืนยันว่ามีการแก้ไขด้านความปลอดภัยทั้งหมดรวมอยู่ด้วย

  3. จัดเตรียมไฟล์โดยวางเมาส์เหนือไฟล์และเลือก + ไอคอน หรือจัดเตรียมการเปลี่ยนแปลงทั้งหมดโดยใช้ + ไอคอนถัดจาก "การเปลี่ยนแปลง"

  4. ป้อนข้อความคอมมิตที่สื่อความหมายในกล่องข้อความที่อ้างอิงถึงปัญหา GitHub:

    Fix SQL injection vulnerability in SearchProducts
    
    - Replace string concatenation with parameterized queries
    - Add input validation for search terms
    - Implement security tests for injection attempts
    
    Fixes #42
    

    Note

    หากต้องการลิงก์การยอมรับของคุณกับปัญหา GitHub ให้ใส่หมายเลขปัญหาในข้อความการยอมรับของคุณโดยใช้ไวยากรณ์การแก้ไขหมายเลข #issue ไวยากรณ์นี้จะปิดปัญหาโดยอัตโนมัติเมื่อมีการผสานการยอมรับ

  5. เลือกปุ่ม ยอมรับ เพื่อยอมรับการเปลี่ยนแปลงของคุณ

  6. เลือกปุ่มซิงค์ การเปลี่ยนแปลง เพื่อส่งสาขาของคุณไปยังที่เก็บระยะไกล

หรือคุณสามารถใช้คําสั่ง Git ในเทอร์มินัลในตัว:

# Stage all changes
git add .

# Commit with a descriptive message referencing the GitHub issue
git commit -m "Fix SQL injection vulnerability in SearchProducts

- Replace string concatenation with parameterized queries
- Add input validation for search terms
- Implement security tests for injection attempts

Fixes #42"

# Push changes to the remote repository
git push origin your-branch-name

Summary

การใช้โหมด Agent ของ GitHub Copilot ช่วยให้นักพัฒนาสามารถแก้ไขปัญหาด้านความปลอดภัยได้อย่างมีประสิทธิภาพในขณะที่ยังคงคุณภาพและฟังก์ชันการทํางานของโค้ด ด้วยการรวมข้อมูลเชิงลึกเชิงวิเคราะห์จากตัวแทน Ask เข้ากับความสามารถในการดําเนินการของตัวแทน คุณจะสามารถจัดการกับช่องโหว่ในฐานรหัสของคุณได้อย่างเป็นระบบ เลือกประเภทตัวแทนที่เหมาะสมกับสถานการณ์ของคุณ — ใช้ตัวแทนในพื้นที่สําหรับการแก้ไขแบบโต้ตอบทีละขั้นตอน หรือตัวแทนระบบคลาวด์เพื่อกําหนดปัญหาที่กําหนดไว้อย่างดีสําหรับการแก้ปัญหาอัตโนมัติ กุญแจสู่ความสําเร็จคือการให้คําแนะนําที่ชัดเจน เอเจนต์เป็นผู้ช่วยที่ทรงพลังที่เร่งการแก้ไข แต่การกํากับดูแลของมนุษย์ยังคงมีความสําคัญต่อการทําให้แน่ใจว่าการแก้ไขความปลอดภัยนั้นสมบูรณ์ ถูกต้อง และไม่ทําให้เกิดช่องโหว่ใหม่