Rust เพิ่มกฎตรวจซอร์สโค้ดห้ามใช้อักษร Unicode เพื่อพิมพ์จากขวาไปซ้าย ป้องกันการซ่อนโค้ด

by lew
1 November 2021 - 03:47

เมื่อกลางปีที่ผ่านมามีรายงานการโจมตี CVE-2021-42574 ที่อาศัยอักขระ Unicode สำหรับการพิมพ์จากขวาไปซ้าย ทำให้ตัวแก้ไขโค้ดแสดงอักขระกลับข้างเปิดทางให้คนร้ายอาจจะซ่อนโค้ดเอาไว้ภายในซอร์สโค้ดเอง โดยที่โปรแกรมเมอร์มองไม่เห็นซอร์สโค้ดนั้น

ปัญหานี้ไม่ใช่ปัญหาของภาษาโปรแกรมมิ่งโดยตรง แต่วันนี้ทาง Rust ก็ออกมาประกาศว่าจะป้องกันปัญหานี้ด้วยการเพิ่มกฎตรวจสอบโค้ด (lint) เข้าไปใน rustc ทำให้โค้ดที่มีอักขระ Unicode เหล่านี้คอมไพล์ไม่ผ่าน หากต้องการใช้งานจริงๆ ต้อง escape ตัวอักขระเสียก่อน

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

ทาง Rust ตรวจสอบแพ็กเกจที่เผยแพร่ผ่าน crates.io พบว่ามีแพ็กเกจเพียง 5 ตัวที่มีอักขระที่เข้าข่าย และทุกแพ็กเกจไม่ได้ใส่อักขณะเพื่อมุ่งร้ายแต่อย่างใด และกฎการตรวจสอบโค้ดจะเพิ่มใน Rust 1.56.1 ที่เปิดให้ดาวน์โหลดวันนี้

ที่มา - Rust

Blognone Jobs Premium