Java ialah bahasa pengaturcaraan yang biasa digunakan untuk membangunkan pelbagai aplikasi. Walau bagaimanapun, sama seperti bahasa pengaturcaraan lain, Java mempunyai kelemahan dan risiko keselamatan. Salah satu kelemahan yang biasa ialah Kerentanan Kemasukan Fail Artikel ini akan membincangkan prinsip, kesan dan cara mencegah kerentanan ini.
Kerentanan kemasukan fail merujuk kepada pengenalan dinamik atau kemasukan fail lain dalam program, tetapi fail yang diperkenalkan tidak disahkan dan dilindungi sepenuhnya Akibatnya, pengguna yang berniat jahat boleh menggunakan kelemahan ini untuk membaca, melaksanakan, mengusik atau memadam dokumen . Punca kelemahan ini ialah input yang diberikan oleh pengguna tidak ditapis dan disahkan dengan betul.
Berikut ialah contoh kod Java ringkas yang menunjukkan potensi bahaya kerentanan kemasukan fail dengan memperkenalkan fail menggunakan kaedah "include":
public class FileInclusionDemo { public static void main(String[] args) { // 用户提供的输入 String fileName = args[0]; // 引入指定文件 include(fileName); } public static void include(String fileName) { try { // 动态加载指定文件 FileReader fileReader = new FileReader(fileName); BufferedReader bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } }
Dalam contoh kod di atas, pengguna boleh memasukkan fileName
parameter, dan kemudian muatkan fail yang ditentukan secara dinamik melalui kaedah include
. Walau bagaimanapun, kelemahan pemasukan fail boleh berlaku jika input yang dibekalkan pengguna tidak disahkan dan dibersihkan dengan secukupnya. fileName
参数,然后通过include
方法动态加载指定文件。然而,如果未对用户提供的输入进行充分的验证和过滤,就可能导致文件包含漏洞的产生。
恶意用户可以通过传入类似"../../../etc/passwd"的fileName
参数来读取系统敏感文件。在类Unix系统中,/etc/passwd
fileName
seperti "../../../etc/passwd". Dalam sistem seperti Unix, fail /etc/passwd
mengandungi maklumat akaun semua pengguna dalam sistem, termasuk nama pengguna, UID, kaedah penyulitan kata laluan, dsb. Jika fail ini dibaca dan didedahkan, ia akan memberikan penyerang dengan sejumlah besar kaedah dan peluang serangan. Untuk mengelakkan kelemahan kemasukan fail, kami boleh mengambil langkah berikut: Atas ialah kandungan terperinci Kerentanan Kemasukan Fail di Jawa dan Kesannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!