ความปลอดภัยของอินเตอร์เฟสในซอฟต์แวร์หลายภาษา

Source page: http://www.cse.psu.edu/~gxt29/projects/multilingual.html

ส่วนใหญ่ระบบซอฟต์แวร์จริง พูดได้หลายภาษา; นั่นคือพวกเขาประกอบด้วยส่วนประกอบที่พัฒนาในภาษาการเขียนโปรแกรมที่แตกต่างกัน ระบบซอฟต์แวร์หลายภาษามีความสะดวกในการปฏิบัติ นักพัฒนาสามารถนำโมดูลรหัสที่มีอยู่กลับมาใช้ใหม่ได้และยังสามารถผสมผสานและจับคู่จุดเด่นของภาษาต่างๆ ตัวอย่างเช่นสมมติว่าผู้พัฒนาตั้งใจที่จะทำการบีบอัดข้อมูลใน Java แทนที่จะเขียนโค้ดทั้งหมดสำหรับการบีบอัดข้อมูลตั้งแต่เริ่มต้นเขาสามารถนำไลบรารี ZLib C ที่มีอยู่กลับมาใช้ใหม่และเขียนอินเตอร์เฟสแบบบางระหว่าง Java และ C ผ่าน Java Native Interface (JNI) ในความเป็นจริงนี่เป็นวิธีที่ JDK ของ Sun ใช้คลาสภายใต้ java.util.zip

แม้ว่าระบบซอฟต์แวร์หลายภาษาจะสะดวกสำหรับนักพัฒนาและแพร่หลายในทางปฏิบัติมันยากที่จะเขียนซอฟต์แวร์หลายภาษาที่ปลอดภัยและเชื่อถือได้ โดยทั่วไปแล้วผู้เขียนโปรแกรมจำเป็นต้องคำนึงถึงความแตกต่างระหว่างภาษาในประเด็นต่าง ๆ เช่นคุณสมบัติภาษารูปแบบข้อมูลการจัดการหน่วยความจำสมมติฐานด้านความปลอดภัย/ความปลอดภัยและอื่น ๆ อีกมากมาย ตัวอย่างเช่น Java มีการสนับสนุนในตัวสำหรับข้อยกเว้นและการจัดการข้อยกเว้นในขณะที่ C ไม่ได้ ดังนั้นเมื่อนักพัฒนาเขียนซอฟต์แวร์ที่ประกอบด้วยทั้งรหัส Java และ C รหัส C จะต้องตรวจสอบข้อยกเว้นในทุกที่ที่อาจเกิดขึ้นได้และให้รหัสเพื่อจัดการกับพวกเขา การไม่ทำเช่นนั้นอาจส่งผลให้หน่วยความจำเงียบเงียบ อย่างที่เราจินตนาการได้นี่เป็นกระบวนการที่เกิดข้อผิดพลาดได้ง่ายมาก

เพื่อแก้ไขปัญหาความปลอดภัยและความน่าเชื่อถือในซอฟต์แวร์หลายภาษาโครงการนี้มีวัตถุประสงค์เพื่อ

  • ดำเนินการวิเคราะห์ระหว่างภาษากับซอฟต์แวร์หลายภาษาที่มีอยู่เพื่อระบุและกำจัดข้อบกพร่องด้านความปลอดภัยที่สำคัญและเพื่อดำเนินการเพิ่มประสิทธิภาพระหว่างภาษา
  • ทำให้เป็นรูปแบบความหมายของการใช้ภาษาร่วมกัน (ในกรอบงานเช่น JNI และ .NET)
  • กลไกการออกแบบที่อำนวยความสะดวกในการเขียนซอฟต์แวร์หลายภาษาที่เชื่อถือได้

สิ่งพิมพ์

  • ว่า, เอสและตาลกรัม (2014b) หาข้อผิดพลาดของการอ้างอิงการนับในโปรแกรมหลาม/C ที่มีการวิเคราะห์ FFI ภาคตะวันออกเฉียงเหนือ ใน  การประชุมยุโรปเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ (ECOOP) [กระดาษ]
  • ว่า, เอสและตาลกรัม (2014a) การวิเคราะห์ข้อยกเว้นในการเชื่อมต่อของ Java พื้นเมือง วิทยาศาสตร์คอมพิวเตอร์ การเขียนโปรแกรม89, 273-297 [กระดาษ]
  • ว่า, เอส, หลิว, วายและตาล กรัม (2012) JATO: atomicity รหัสพื้นเมืองสำหรับ Java ใน  เอเชีย ประชุมวิชาการเกี่ยวกับการเขียนโปรแกรมภาษาและระบบ (APLAS), หน้า 2-17 [กระดาษ]
  • ว่า, เอสและสีน้ำตาล, กรัม (2011) JET: ข้อยกเว้นการตรวจสอบในการเชื่อมต่อของ Java พื้นเมือง ใน ACM การประชุมเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุระบบภาษาและโปรแกรมประยุกต์ (OOPSLA), หน้า 345-358 [กระดาษ]
  • ว่า, เอสและสีน้ำตาล, กรัม (2009) หาข้อบกพร่องในสถานการณ์พิเศษของโปรแกรม JNI ใน  วันที่ 16  การประชุม ACM ในคอมพิวเตอร์และการสื่อสารการรักษาความปลอดภัย (CCS), หน้า 442-452 [กระดาษ]
  • ตาลกรัมและนาเจ (2008) การศึกษาเชิงประจักษ์การรักษาความปลอดภัยของรหัสพื้นเมืองใน JDK ใน  วันที่ 17 Usenix การรักษาความปลอดภัย การประชุมวิชาการ, หน้า 365-377 [กระดาษ] [สไลด์] [รายงานเทคโนโลยี]
  • ตาลกรัมและ จรวดแม่ กรัม (2007) ILEA วิเคราะห์ Inter-ภาษาทั่ว Java และ C ใน ACM การประชุมเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุระบบภาษาและโปรแกรมประยุกต์ (OOPSLA), หน้า 39-56 [กระดาษ] [สไลด์]
  • ตาลกรัม โทรศัพท์, ใด, ชะอำกราด, เอส อากูนาธานอาร์, ใด, ราวีเอสและวัง, D. (2006b) ปลอดภัย Java อินเตอร์เฟสพื้นเมือง ใน  IEEE ระหว่างการประชุมวิชาการเกี่ยวกับการรักษาความปลอดภัยวิศวกรรมซอฟต์แวร์, หน้า 97-106 [กระดาษ] [สไลด์]

ผู้เข้าร่วม

  • กังตาน
  • ศรีสองฉัน
  • เจสันที่ดินฝืนเล็ก

อัพเดทล่าสุด: กรกฎาคม 2011