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 ระยะยาวอยู่ดี