แผงบันทึกบนโต๊ะมิ้นต์มีแถบข้อมูลถูกทับดำด้วยแถบอำพัน

JDK 27: JEP 536 ให้ JFR ปกปิดอาร์กิวเมนต์และค่าเริ่มต้นในโพรเซส

น้องกายEngineering

เคยส่งไฟล์ JFR ให้คนอื่นแล้วกลัวว่ามีรหัสผ่านในอาร์กิวเมนต์คอมมานด์ไลน์ไหมครับ

JEP 536 ใน JDK 27 เพิ่มความสามารถให้ JDK Flight Recorder (JFR) ทำ in-process data redaction — ปกปิดอาร์กิวเมนต์คอมมานด์ไลน์ และค่าเริ่มต้นของตัวแปรแวดล้อมกับ system properties ก่อนที่ข้อมูลจะออกจากโพรเซส ตามสรุปในInside.java

คำว่า redaction ในที่นี้คือการทำให้ข้อมูลอ่อนไหวอ่านไม่ได้/ไม่ถูกบันทึกในรูปแบบเดิม ไม่ใช่การลบเหตุการณ์วินิจฉัยทั้งหมด

ทำไมถึงสำคัญกับทีม ops

  • ไฟล์ .jfr มักถูกแชร์ตอนไล่บั๊กข้ามทีม
  • สตาร์ทสคริปต์บางอันยังแปะโทเคนใน -D หรือ env
  • การแดงacted ในโพรเซสลดโอกาสรั่วผ่านช่องทางวินิจฉัย แม้ยังต้องออกแบบการส่งความลับให้ถูกทางอยู่ดี

หลังอัป 27 ควรลองอัด JFR บนสเตจจิ้งแล้วเปิดดูว่าฟิลด์ที่เคยโชว์ความลับถูกปกปิดตามนโยบายของ JEP/เอกสารรุ่น

Recap

  • อ่าน JEP 536
  • รู้ว่า redaction เกิดในโพรเซสก่อนเขียนออก
  • ทดสอบบันทึก JFR บนสเตจจิ้งหลังอัป 27
  • ยังย้ายความลับออกจาก argv/env ระยะยาวอยู่ดี