Tags:
Node Thumbnail

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

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

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

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

ที่มา - Rust

No Description

Get latest news from Blognone

Comments

By: 21Aki
ContributorAndroidWindows
on 1 November 2021 - 22:59 #1230099
21Aki's picture

สุขลักษณะการเขียนโค้ด มาจากภาษาอังกฤษว่าอะไรอะครับ

By: big50000
AndroidSUSEUbuntu
on 2 November 2021 - 01:40 #1230109 Reply to:1230099
big50000's picture

เดาว่าเป็น Coding Conventions

By: mr_tawan
ContributoriPhoneAndroidWindows
on 2 November 2021 - 01:56 #1230110 Reply to:1230099
mr_tawan's picture

สงสัยว่าจะเป็น Code Hygiene :D


  • 9tawan.net บล็อกส่วนตัวฮับ
By: arayaphong on 2 November 2021 - 11:00 #1230145 Reply to:1230099

rust syntax rules เขาก็คุมเข้มเรื่อง coding quality มาก
ถ้าเขียนแบบไม่ make sense บางทีคอมไพล์ไม่ได้

แต่จากบทความน่าจะหมายถึง coding convention แหละมั้ง(เดา)