แก้ไขปัญหาโดยใช้โหมดเอเจนต์ของ 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 มีวิธีการแบบบูรณาการในการตรวจสอบและยอมรับการแก้ไขความปลอดภัยของคุณ:
เปิดมุมมอง ตัวควบคุมแหล่งที่มา โดยเลือกไอคอน ตัวควบคุมแหล่งที่มา ในแถบกิจกรรม หรือกด Ctrl+Shift+G
ตรวจสอบการเปลี่ยนแปลงที่ระบุไว้ใน "การเปลี่ยนแปลง" เพื่อยืนยันว่ามีการแก้ไขด้านความปลอดภัยทั้งหมดรวมอยู่ด้วย
จัดเตรียมไฟล์โดยวางเมาส์เหนือไฟล์และเลือก + ไอคอน หรือจัดเตรียมการเปลี่ยนแปลงทั้งหมดโดยใช้ + ไอคอนถัดจาก "การเปลี่ยนแปลง"
ป้อนข้อความคอมมิตที่สื่อความหมายในกล่องข้อความที่อ้างอิงถึงปัญหา 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 #42Note
หากต้องการลิงก์การยอมรับของคุณกับปัญหา GitHub ให้ใส่หมายเลขปัญหาในข้อความการยอมรับของคุณโดยใช้ไวยากรณ์การแก้ไขหมายเลข #issue ไวยากรณ์นี้จะปิดปัญหาโดยอัตโนมัติเมื่อมีการผสานการยอมรับ
เลือกปุ่ม ยอมรับ เพื่อยอมรับการเปลี่ยนแปลงของคุณ
เลือกปุ่มซิงค์ การเปลี่ยนแปลง เพื่อส่งสาขาของคุณไปยังที่เก็บระยะไกล
หรือคุณสามารถใช้คําสั่ง 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 เข้ากับความสามารถในการดําเนินการของตัวแทน คุณจะสามารถจัดการกับช่องโหว่ในฐานรหัสของคุณได้อย่างเป็นระบบ เลือกประเภทตัวแทนที่เหมาะสมกับสถานการณ์ของคุณ — ใช้ตัวแทนในพื้นที่สําหรับการแก้ไขแบบโต้ตอบทีละขั้นตอน หรือตัวแทนระบบคลาวด์เพื่อกําหนดปัญหาที่กําหนดไว้อย่างดีสําหรับการแก้ปัญหาอัตโนมัติ กุญแจสู่ความสําเร็จคือการให้คําแนะนําที่ชัดเจน เอเจนต์เป็นผู้ช่วยที่ทรงพลังที่เร่งการแก้ไข แต่การกํากับดูแลของมนุษย์ยังคงมีความสําคัญต่อการทําให้แน่ใจว่าการแก้ไขความปลอดภัยนั้นสมบูรณ์ ถูกต้อง และไม่ทําให้เกิดช่องโหว่ใหม่