JavaRush /Blog Java /Random-MS /Rehat kopi #35. Cara mematuhi peraturan keselamatan GitHu...

Rehat kopi #35. Cara mematuhi peraturan keselamatan GitHub. Petua berguna untuk menyahpepijat kod Java dengan cepat

Diterbitkan dalam kumpulan

Bagaimana untuk kekal selamat di GitHub

Sumber: DZone GitHub sepatutnya dianggap sebagai platform pembangunan pasukan yang paling popular. Menurut data dari musim gugur lalu, lebih daripada 40 juta pengaturcara menggunakan perkhidmatan ini. Dan kerana kebanyakan mereka menggunakan sumber terbuka untuk mencipta perisian, keselamatan semasa bekerja pada Github harus menjadi keutamaan anda. Menggunakan semula kod meningkatkan risiko menyebarkan kelemahan. Ini bermakna setiap pengguna GitHub harus memberi perhatian maksimum untuk mewujudkan persekitaran pembangunan yang selamat. Rehat kopi #35.  Cara mematuhi peraturan keselamatan GitHub.  Petua berguna untuk menyahpepijat kod Java dengan cepat - 1Terdapat 8 peraturan yang perlu anda ikuti untuk memastikan kod GitHub anda selamat.

Menyediakan kawalan akses

Kawalan akses ialah salah satu cara terbaik untuk meningkatkan keselamatan bukan sahaja pada GitHub, tetapi dalam mana-mana persekitaran lain yang memerlukan perlindungan kod. GitHub menawarkan beberapa cara untuk mengurangkan risiko dalam kerja anda. Mula-mula, jadikan amalan untuk memberikan keistimewaan paling sedikit—berikan pengguna repositori hanya kebenaran yang mereka perlukan untuk melakukan tugas mereka. Terdapat kaedah kawalan akses lain yang perlu anda ikuti:
  • mengehadkan penciptaan repositori untuk menghalang pengguna daripada mendedahkan maklumat tentang organisasi dalam repositori awam;
  • dayakan perlindungan cawangan dan semakan keadaan supaya pengguna boleh menggabungkan komitmen atau mengurus cawangan dengan selamat;
  • Benarkan atau lumpuhkan forking repositori peribadi untuk memastikan pengguna tidak mendedahkan atau berkongsi kod anda dengan orang lain;
  • membatalkan akses untuk semua pengguna tidak aktif yang bukan lagi ahli komuniti anda atau pekerja syarikat;
  • Semak hak akses kepada projek anda secara berkala di GitHub;
  • Pastikan pengguna tidak berkongsi akses atau kata laluan akaun GitHub dengan orang lain;
  • pastikan setiap pengguna repositori menggunakan pengesahan dua faktor dalam akaun mereka;
  • Tukar token akses peribadi dan kunci SSH secara berkala.

Jangan sekali-kali menyimpan data akses dalam fail GitHub anda

Membocorkan maklumat akses ke repositori GitHub anda melalui kod, fail konfigurasi atau mesej komit boleh digunakan untuk serangan. Untuk mengelakkan data sensitif daripada ditambahkan pada repositori anda, gunakan alat kawalan akses seperti git-secrets atau vault . Alat ini mengimbas pangkalan kod anda dan menukar akses apabila maklumat sensitif ditemui dalam kod atau fail konfigurasi anda. Jika anda menemui maklumat sensitif dalam repositori GitHub anda, anda harus memadamkannya dengan segera. Tetapi kerana GitHub menyimpan sejarah semua komit dalam repositori anda, memadamkan data sahaja tidak mencukupi. Anda perlu memadamkan fail daripada sejarah repositori GitHub anda. Langkah penting untuk meningkatkan keselamatan ialah penggantian semua kata laluan dan token yang sebelum ini tersedia secara umum.

Dayakan makluman untuk kebergantungan yang terdedah

Memandangkan pengguna GitHub mengusahakan lebih banyak projek, ia menjadi semakin sukar untuk mengawal semakin banyak objek bergantung. Nasib baik, GitHub menyediakan makluman automatik untuk kebergantungan terdedah yang terdapat dalam repositori. Makluman ini adalah berdasarkan Pangkalan Data Kerentanan Kebangsaan (NVD), Nasihat Keselamatan GitHub dan pangkalan data kerentanan WhiteSource, yang menyokong lebih daripada 200 bahasa pengaturcaraan. Makluman GitHub menjadikannya lebih mudah dan selamat untuk menggunakan perpustakaan sumber terbuka.

Semak apl yang ditambahkan daripada GitHub

Pasaran GitHub mengandungi beratus-ratus aplikasi yang ditulis oleh pembangun dan syarikat pihak ketiga. Oleh itu, adalah penting untuk menyemak dengan teliti setiap aplikasi yang anda tambahkan pada repositori anda. Apabila memasang aplikasi daripada Pasaran GitHub, ikut garis panduan ini:
  • Menguatkuasakan prinsip keistimewaan yang paling sedikit. Jangan sekali-kali memberi aplikasi lebih hak akses daripada yang mereka perlukan;
  • Sentiasa mempersoalkan hak akses atau kebenaran yang diminta oleh aplikasi. Fikirkan tentang kerosakan yang boleh disebabkan oleh tahap akses ini;
  • Sahkan bahawa syarikat atau pembangun apl itu benar-benar wujud sebelum memberikan mereka akses kepada repositori GitHub anda;
  • Semak fungsi dan keselamatan aplikasi. Jika ia mengandungi kelemahan, anda mungkin menjadi mangsa penggodaman;
Keselamatan permohonan dinilai oleh bahagian yang paling lemah. Ini juga digunakan untuk repositori GitHub. Jadi sebelum anda memberikan apl akses kepada storan anda, pastikan anda mempercayainya dan ia sepadan dengan tahap akses yang dimintanya.

Semak semua kod yang diimport daripada GitHub

Pembangun sering menggunakan kod orang lain. Setiap kali anda menyalin sebahagian daripada kod orang lain ke dalam projek anda, jalankan semakan penuh mengenainya. Ini mungkin kelihatan seperti membuang masa, terutamanya untuk projek kecil, tetapi ada kemungkinan bahawa dengan mengabaikan peraturan ini, anda akan memperkenalkan kelemahan ke dalam repositori anda. Risiko lain yang dikaitkan dengan kod yang diimport ialah ia mungkin mengandungi maklumat sensitif seperti data capaian. Jika ia disimpan dalam fail GitHub, ini mewujudkan satu lagi risiko keselamatan. Mengaudit kod sebelum menyalinnya membantu mengenal pasti kelemahan tersebut. Jangan menganggap bahawa kod orang lain selamat kerana ia berada dalam repositori peribadi. Ia boleh membahayakan pangkalan kod anda.

Gunakan analisis kod sumber statik automatik untuk repositori anda

Terdapat beberapa alat pihak ketiga yang boleh anda gunakan untuk menganalisis repositori anda untuk mencari kelemahan. Salah satunya ialah WhiteSource Bolt , alat percuma daripada Pasaran GitHub. WhiteSource Bolt mengimbas repositori anda untuk mencari kelemahan dalam semua kod terdedah. Ia juga menyediakan maklumat terperinci tentang kelemahan dan mencadangkan pilihan pemulihan.

Gunakan pelan GitHub yang sesuai dengan keperluan anda

Banyak syarikat mempunyai dasar yang menghalang pembangun daripada menyiarkan kod pada platform seperti GitHub. Sekatan ini adalah biasa di jabatan kerajaan dan institusi kewangan. Jika anda bekerja dalam persekitaran yang sangat terkawal, gunakan GitHub Enterprise , pelan perusahaan yang membolehkan anda mengehoskan repositori pada pelayan setempat. Ini memberikan tahap keselamatan yang lebih tinggi kerana ia membolehkan pembangun syarikat mempunyai akses kepada semua projek tanpa perlu risau tentang pengguna GitHub yang tidak dibenarkan.

Ikuti dasar keselamatan yang komprehensif dalam projek anda

Keselamatan adalah tanggungjawab bersama. Jika anda bekerja dalam satu pasukan, adalah penting untuk mewujudkan peraturan keselamatan yang mesti dipatuhi oleh semua pihak berkepentingan. Sebaik-baiknya, anda harus membawa pasukan keselamatan siber dan pembangunan bersama-sama semasa fasa perancangan untuk memastikan mereka berfungsi secara serentak. Ini akan memudahkan untuk memastikan perlindungan semasa proses pembangunan. Jika salah seorang ahli pasukan anda cuai tentang menyimpan kata laluan atau maklumat sensitif lain, ia boleh menyebabkan keseluruhan repositori berisiko. Untuk mengelakkan ini, dokumentasikan dengan jelas prosedur keselamatan yang mesti dipatuhi oleh semua rakan sekerja anda.

Kesimpulan

Melindungi kod anda pada GitHub adalah mudah. Anda hanya perlu memastikan kawalan akses yang betul, mengambil kesempatan daripada ciri keselamatan terbina dalam GitHub. Jika anda berminat dengan perlindungan maksimum, sepadukan alatan tambahan yang akan meningkatkan keselamatan kod pada semua peringkat pembangunan. Kami juga mengesyorkan anda menyemak bahagian Keselamatan GitHub untuk Perniagaan dan Pengguna Percuma dalam dokumentasi . Dengan cara ini anda boleh mendapatkan maklumat tambahan tentang keselamatan dan perlindungan kod.

Petua berguna untuk menyahpepijat kod Java dengan cepat

Sumber: Hackernoon Selain daripada menulis kod yang cekap, menjadi lebih baik dalam penyahpepijatan adalah salah satu perkara paling berguna yang boleh anda lakukan untuk menjadikan hidup anda lebih mudah sebagai pembangun Java. Ini amat penting dalam keadaan pembangunan perisian moden, di mana dunia perisian bergerak secara aktif ke arah seni bina teragih dan kod tak segerak. Rehat kopi #35.  Cara mematuhi peraturan keselamatan GitHub.  Petua berguna untuk menyahpepijat kod Java dengan cepat - 2Walaupun ralat perisian tidak dapat dielakkan, ia menjadi semakin sukar untuk dikesan dan diperbaiki dalam binaan yang kompleks. Dan apabila beralih ke peringkat keluaran produk, proses penyahpepijatan menjadi masalah yang lebih serius. Malangnya, tiada cara untuk mengelakkan ini - penyahpepijatan diperlukan. Untuk membantu anda, saya memutuskan untuk berkongsi beberapa petua berguna untuk menyahpepijat aplikasi Java pada peringkat pembangunan yang berbeza.

Gunakan titik kawalan

Mari kita mulakan dengan titik putus, titik yang jelas tetapi sangat penting yang mendasari sebarang proses penyahpepijatan. Pusat pemeriksaan membolehkan anda menghentikan pelaksanaan aplikasi supaya anda boleh menganalisis keadaan program dan mengetahui sebab kod tidak berfungsi dengan betul. Setiap penyahpepijat menawarkan beberapa pilihan titik putus, termasuk titik putus bersyarat, titik putus pengecualian, titik pantau dan titik surih. Mempelajari cara dan masa untuk menggunakan pelbagai jenis titik putus boleh menjadikan proses penyahpepijatan lebih lancar. Perlu dinyatakan bahawa beberapa alat moden menyokong pusat pemeriksaan tanpa mengganggu aplikasi. Ini membolehkan anda menetapkan titik dalam kod anda dan mengumpul data penyahpepijatan tanpa menghentikan pelaksanaan program.

Tunjukkan struktur logik

Ciri struktur logik tunjukkan sangat berguna apabila memantau kandungan dalam kelas Java. Jika ciri ini didayakan, senarai pembolehubah menunjukkan tatasusunan, yang lebih berguna dalam konteks penyahpepijatan. Ini sangat mudah, terutamanya jika kod anda tidak mempunyai kaedah toString() untuk objek. Paparan pembolehubah juga membolehkan anda menukar secara langsung nilai pembolehubah anda semasa menyahpepijat. Ini boleh menjimatkan banyak masa dengan tidak perlu memulakan semula sesi penyahpepijatan dengan data input yang diubah.

Belajar menavigasi pangkalan kod

Mana-mana penyahpepijat Java boleh menggunakan beberapa fungsi yang membolehkan anda menavigasi bahagian kod yang berbeza semasa menyahpepijat. Sebahagian daripadanya termasuk "lari ke barisan", "langkah ke atas", "langkah ke dalam" dan "langkah ke dalam". Sebagai tambahan kepada ini, pertimbangkan dua lagi pilihan:
  1. Jatuhkan ke bingkai - Fungsi ini digunakan untuk kembali ke titik dalam bingkai tindanan anda. Jika anda terlepas satu mata dan perlu kembali, hanya gunakan fungsi Drop to frame.
  2. Penapisan langkah - membolehkan anda melangkau paket tertentu semasa nyahpepijat. Anda tidak perlu menavigasi semua kelas dalam sistem JDK apabila anda hanya boleh menapis jenis yang anda tidak perlukan.
Untuk meningkatkan kelajuan navigasi kod anda, anda perlu menguasai kombinasi kekunci fungsi:
  • F5 - untuk "melangkah masuk".
  • F6 - untuk "melangkah lebih".
  • F7 - untuk "step return".
  • F8 - untuk berlari ke pusat pemeriksaan seterusnya.
Walaupun kekunci pintas mungkin berbeza antara IDE, jika anda mengingatinya, ia akan menyelamatkan anda daripada perlu menggunakan tetikus dengan lebih kerap.

Belajar Mengelakkan Kebuntuan

Senario kebuntuan berlaku apabila dua atau lebih benang menyekat selepas membentuk kebergantungan bulat. Memandangkan satu set benang Java biasanya menunggu sumber lain, ini boleh menyebabkan aplikasi berhenti sepenuhnya. Menyahpepijat kebuntuan jstack boleh menjadi agak sukar kerana ia tidak menunjukkan penunjuk masalah seperti lonjakan memori, beban CPU, dll. Terdapat pelbagai pendekatan untuk menyelesaikan masalah jalan buntu jstack. Mula-mula, anda boleh menangkap berbilang lambakan benang dalam kelompok JVM anda untuk membuat kesimpulan corak benang. Dalam kes ini, menganalisis pembuangan benang statik mungkin tidak mencukupi. Bergantung pada saiz gugusan JVM, anda mungkin perlu menjejak berbilang fail, yang selalunya merupakan proses intensif buruh dan memakan masa. Sebaiknya gunakan penyelesaian pemantauan aplikasi yang menyediakan lapisan JV dan lapisan kod yang diperlukan untuk mengasingkan kebuntuan benang. Nasib baik, terdapat alat inovatif yang boleh membantu dengan situasi ini, termasuk beberapa penyahpepijat moden serta alat APM komersial. Alat ini meningkatkan ketelusan kod Java anda sambil mengenal pasti ralat.

Manfaatkan kuasa penyahpepijat pengeluaran

Proses penyahpepijatan biasa yang biasanya diikuti oleh kebanyakan pembangun melibatkan replikasi persekitaran, mengasingkan ralat, dan kemudian membetulkannya. Walau bagaimanapun, ini tidak terpakai dalam semua kes. Jika ini keadaannya, pembangun harus menggunakan penyahpepijat pengeluaran yang berkuasa. Rookout adalah salah satu alat sedemikian. Ia membolehkan anda mengumpul data penyahpepijatan daripada aplikasi tanpa mengubah keadaan atau kawalan alirannya. Dengan Rookout, anda boleh menetapkan titik putus tanpa putus untuk mendapatkan surih tindanan penuh, menangkap pembolehubah langsung atau sebarang data aplikasi lain yang diperlukan untuk nyahpepijat. Jadi, daripada menggunakan penyelesaian pemantauan overhed tinggi untuk penyahpepijatan pengeluaran, cuma gunakan Rookout, yang menyediakan semua yang anda perlukan untuk menyahpepijat aplikasi tanpa menggunakan semula atau menulis kod baharu. Sama ada anda bekerja di bahagian pelayan atau aplikasi kontena, Rookout ialah tambahan yang bagus untuk senjata penyahpepijat anda.

Jangan lupa tentang penyahpepijatan jauh

Sebilangan besar IDE, seperti NetBeans, Eclipse, IntelliJ IDEA dan Visual Studio, menyokong penyahpepijatan jauh, teknik yang membolehkan anda membetulkan kod Java yang terdapat pada komputer lain. Ini amat penting dalam situasi di mana sistem anda tidak menyokong penyahpepijatan setempat, atau apabila komputer anda tidak mempunyai sumber yang mencukupi untuk menjalankan penyahpepijat. Untuk melakukan penyahpepijatan jauh, anda mesti memberikan maklumat konfigurasi yang akan digunakan penyahpepijat untuk menyambung ke port jauh. Penyahpepijatan jauh juga berguna dalam situasi penyelesaian masalah di mana pembangun luar tapak perlu menyambung ke aplikasi untuk membetulkan pepijat. Ingat bahawa kadangkala penyahpepijatan boleh mengambil masa lebih lama daripada pelaksanaan sebenar. Sambil anda mengasah kemahiran penyahpepijatan Java anda, sentiasa berusaha untuk menulis kod yang bersih dan cekap—ia membuahkan hasil apabila membetulkan pepijat. Jika anda berasa seperti keadaan semakin tidak terkawal, adalah idea yang baik untuk berehat. Pepijat adalah teka-teki pengaturcaraan, dan ramai pengaturcara telah berjaya menyelesaikan masalah ini tanpa berada di mana-mana berhampiran komputer mereka. Gunakan strategi yang diterangkan di atas untuk menyingkirkan masalah penyahpepijatan Java. Selamat mengekod!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION