9 petua keselamatan untuk melindungi laman web anda daripada penggodam

Pengarang: Monica Porter
Tarikh Penciptaan: 22 Mac 2021
Tarikh Kemas Kini: 17 Mungkin 2024
Anonim
Ciptaan Terbaru Yang Berada Di Tahap Yang Lain ▶42
Video.: Ciptaan Terbaru Yang Berada Di Tahap Yang Lain ▶42

Kandungan

Anda mungkin tidak menyangka laman web anda mempunyai sesuatu yang patut diretas, tetapi laman web sentiasa terganggu. Sebilangan besar pelanggaran keselamatan laman web bukan untuk mencuri data atau mengacaukan susun atur laman web anda, melainkan cuba menggunakan pelayan anda sebagai penyampai e-mel untuk spam, atau untuk menubuhkan pelayan web sementara, biasanya untuk melayani fail yang tidak sah . Cara lain yang sangat biasa untuk menyalahgunakan mesin yang dikompromikan termasuk menggunakan pelayan anda sebagai sebahagian daripada botnet, atau untuk menambang Bitcoin. Anda bahkan boleh terkena ransomware.

Peretasan dilakukan secara kerap oleh skrip automatik yang ditulis untuk menjelajahi internet dalam usaha untuk memanfaatkan masalah keselamatan laman web yang diketahui dalam perisian. Berikut adalah sembilan petua utama kami untuk memastikan anda dan laman web anda selamat dalam talian.

01. Pastikan perisian sentiasa dikemas kini

Mungkin kelihatan jelas, tetapi memastikan anda sentiasa memperbaharui semua perisian sangat penting dalam menjaga keselamatan laman web anda. Ini berlaku untuk sistem operasi pelayan dan perisian yang mungkin anda jalankan di laman web anda seperti CMS atau forum. Apabila lubang keselamatan laman web terdapat dalam perisian, penggodam dengan cepat berusaha menyalahgunakannya.


Sekiranya anda menggunakan penyelesaian hosting yang dikendalikan, maka anda tidak perlu terlalu bimbang untuk menggunakan kemas kini keselamatan untuk sistem operasi kerana syarikat hosting harus mengurus ini.

Sekiranya anda menggunakan perisian pihak ketiga di laman web anda seperti CMS atau forum, anda harus memastikan anda cepat menggunakan sebarang patch keselamatan. Sebilangan besar vendor mempunyai senarai mel atau umpan RSS yang memperincikan sebarang masalah keselamatan laman web. WordPress, Umbraco dan CMS lain memberitahu anda mengenai kemas kini sistem yang tersedia semasa anda log masuk.

Banyak pembangun menggunakan alat seperti Komposer, npm, atau RubyGems untuk menguruskan pergantungan perisian mereka, dan kerentanan keselamatan yang muncul dalam pakej yang anda bergantung tetapi tidak memberi perhatian adalah salah satu cara termudah untuk terjebak. Pastikan anda terus bergantung kepada anda, dan gunakan alat seperti Gemnasium untuk mendapatkan pemberitahuan automatik apabila kerentanan diumumkan di salah satu komponen anda.

02. Awas untuk suntikan SQL

Serangan suntikan SQL adalah ketika penyerang menggunakan medan bentuk web atau parameter URL untuk mendapatkan akses ke atau memanipulasi pangkalan data anda. Apabila anda menggunakan Transact SQL standard, dengan mudah tanpa sengaja memasukkan kod penyangak ke dalam pertanyaan anda yang dapat digunakan untuk mengubah jadual, mendapatkan informasi dan menghapus data. Anda boleh mencegahnya dengan mudah dengan selalu menggunakan pertanyaan parameter, kebanyakan bahasa web mempunyai ciri ini dan mudah dilaksanakan.


Pertimbangkan pertanyaan ini:

"PILIH * DARI jadual DI MANA lajur = '" + parameter + "';"

Sekiranya penyerang mengubah parameter URL untuk meneruskan 'atau' 1 '=' 1 ini akan menyebabkan pertanyaan kelihatan seperti ini:

"PILIH * DARI jadual DI MANA lajur = '' ATAU '1' = '1';"

Oleh kerana '1' sama dengan '1' ini akan membolehkan penyerang menambahkan pertanyaan tambahan pada akhir pernyataan SQL yang juga akan dijalankan.

Anda boleh menyelesaikan pertanyaan ini dengan memaparkan parameternya secara eksplisit. Contohnya, jika anda menggunakan MySQLi dalam PHP, ini akan menjadi:

$ stmt = $ pdo-> siapkan ('PILIH * DARI jadual DI MANA lajur =: nilai'); $ stmt-> execute (array ('value' => $ parameter));

03. Lindungi daripada serangan XSS

Serangan skrip lintas tapak (XSS) menyuntikkan JavaScript berbahaya ke halaman anda, yang kemudian berjalan di penyemak imbas pengguna anda, dan dapat mengubah isi halaman, atau mencuri maklumat untuk dikirim kembali ke penyerang. Sebagai contoh, jika anda menunjukkan komen di halaman tanpa pengesahan, maka penyerang mungkin mengirimkan komen yang berisi tag skrip dan JavaScript, yang dapat berjalan di setiap penyemak imbas pengguna lain dan mencuri kuki log masuk mereka, yang memungkinkan serangan tersebut dapat menguasai akaun setiap pengguna yang melihat komen. Anda harus memastikan bahawa pengguna tidak dapat menyuntikkan kandungan JavaScript aktif ke halaman anda.


Ini menjadi perhatian khusus dalam aplikasi web moden, di mana halaman sekarang dibina terutamanya dari kandungan pengguna, dan yang dalam banyak kes menghasilkan HTML yang kemudian juga ditafsirkan oleh kerangka depan seperti Angular dan Ember. Kerangka kerja ini memberikan banyak perlindungan XSS, tetapi mencampurkan pelayan dan rendering klien juga menghasilkan jalan serangan baru dan lebih rumit: bukan sahaja menyuntik JavaScript ke dalam HTML yang berkesan, tetapi anda juga dapat menyuntikkan kandungan yang akan menjalankan kod dengan memasukkan arahan Angular, atau menggunakan Ember pembantu.

Kuncinya di sini adalah untuk memberi tumpuan kepada bagaimana kandungan yang dihasilkan pengguna anda dapat melarikan diri dari batas yang anda harapkan dan ditafsirkan oleh penyemak imbas sebagai sesuatu yang lain daripada yang anda inginkan. Ini sama dengan mempertahankan diri daripada suntikan SQL. Semasa menjana HTML secara dinamik, gunakan fungsi yang secara eksplisit membuat perubahan yang anda cari (misalnya gunakan element.setAttribute dan element.textContent, yang akan dilarikan secara automatik oleh penyemak imbas, dan bukannya menetapkan elemen.innerHTML dengan tangan), atau gunakan fungsi dalam alat templat anda yang secara automatik melakukan melarikan diri yang sesuai, daripada menggabungkan tali atau menetapkan kandungan HTML mentah.

Alat lain yang kuat dalam kotak alat pembela XSS adalah Content Security Policy (CSP). CSP adalah header yang dapat dikembalikan oleh pelayan anda yang memberitahu penyemak imbas untuk membatasi bagaimana dan apa JavaScript dilaksanakan di halaman, misalnya untuk tidak membenarkan menjalankan skrip yang tidak dihoskan di domain Anda, tidak membenarkan JavaScript sebaris, atau menonaktifkan eval (). Mozilla mempunyai panduan yang sangat baik dengan beberapa konfigurasi contoh. Ini menyukarkan skrip penyerang untuk berfungsi, walaupun mereka dapat memasukkannya ke halaman anda.

04. Berhati-hati dengan mesej ralat

Berhati-hatilah dengan seberapa banyak maklumat yang anda berikan dalam mesej ralat anda. Berikan hanya sedikit kesalahan kepada pengguna anda, untuk memastikan mereka tidak membocorkan rahsia yang ada di pelayan anda (mis. Kunci API atau kata laluan pangkalan data). Jangan berikan butiran pengecualian sepenuhnya, kerana ini dapat menjadikan serangan kompleks seperti suntikan SQL jauh lebih mudah. Simpan kesilapan terperinci dalam log pelayan anda, dan tunjukkan kepada pengguna hanya maklumat yang mereka perlukan.

05. Sahkan di kedua-dua belah pihak

Pengesahan harus selalu dilakukan di sisi penyemak imbas dan pelayan. Penyemak imbas dapat menangkap kegagalan sederhana seperti bidang wajib yang kosong dan semasa anda memasukkan teks ke dalam medan angka sahaja. Namun demikian, ini dapat dilewati, dan anda harus memastikan anda memeriksa pengesahan ini dan sisi pelayan pengesahan yang lebih mendalam kerana jika gagal berbuat demikian boleh menyebabkan kod jahat atau kod skrip dimasukkan ke dalam pangkalan data atau dapat menyebabkan hasil yang tidak diinginkan di laman web anda.

06. Periksa kata laluan anda

Semua orang tahu bahawa mereka harus menggunakan kata laluan yang rumit, tetapi itu tidak bermakna mereka selalu menggunakannya. Sangat penting untuk menggunakan kata laluan yang kuat ke kawasan pentadbir pelayan dan laman web anda, tetapi juga penting untuk menegaskan amalan kata laluan yang baik bagi pengguna anda untuk melindungi keselamatan akaun mereka.

Sebanyak mungkin pengguna tidak menyukainya, menegakkan syarat kata laluan seperti minimum lapan aksara, termasuk huruf besar dan angka akan membantu melindungi maklumat mereka dalam jangka panjang.

Kata laluan harus selalu disimpan sebagai nilai yang dienkripsi, lebih baik menggunakan algoritma hashing sehala seperti SHA. Menggunakan kaedah ini bermaksud semasa anda mengesahkan pengguna, anda hanya membandingkan nilai yang dienkripsi. Untuk keselamatan laman web tambahan, adalah idea yang baik untuk memasukkan kata laluan, menggunakan garam per kata laluan baru.

Sekiranya seseorang meretas dan mencuri kata laluan anda, menggunakan kata laluan hash dapat membantu pembatasan kerosakan, kerana penyahsulitannya tidak mungkin dilakukan. Yang terbaik yang boleh dilakukan seseorang ialah serangan kamus atau serangan brute force, yang pada dasarnya meneka setiap kombinasi sehingga ia menemui padanan. Semasa menggunakan kata laluan masin, proses memecahkan sebilangan besar kata laluan bahkan lebih perlahan kerana setiap tekaan harus dicincang secara berasingan untuk setiap kata laluan garam + kata laluan yang sangat mahal.

Syukurlah, banyak CMS menyediakan pengurusan pengguna di luar kotak dengan banyak ciri keselamatan laman web ini, walaupun beberapa konfigurasi atau modul tambahan mungkin diperlukan untuk menggunakan kata laluan masin (pra Drupal 7) atau untuk menetapkan kekuatan kata laluan minimum. Sekiranya anda menggunakan .NET maka perlu menggunakan penyedia keahlian kerana mereka sangat dapat dikonfigurasi, berikan keselamatan laman web terbina dalam dan sertakan kawalan siap pakai untuk log masuk dan tetapan semula kata laluan.

07. Elakkan muat naik fail

Membolehkan pengguna memuat naik fail ke laman web anda boleh menjadi risiko keselamatan laman web yang besar, walaupun hanya untuk menukar avatar mereka. Risikonya adalah bahawa setiap fail yang dimuat naik, walau pun polosnya, dapat memuat skrip yang ketika dijalankan di pelayan anda, membuka laman web anda sepenuhnya.

Sekiranya anda mempunyai borang muat naik fail maka anda perlu memperlakukan semua fail dengan rasa curiga. Sekiranya anda mengizinkan pengguna memuat naik gambar, anda tidak boleh bergantung pada peluasan fail atau jenis mime untuk mengesahkan bahawa fail tersebut adalah gambar kerana gambar ini dapat dipalsukan dengan mudah. Walaupun membuka fail dan membaca tajuk, atau menggunakan fungsi untuk memeriksa ukuran gambar tidak mudah. Sebilangan besar format gambar membolehkan menyimpan bahagian komen yang boleh mengandungi kod PHP yang dapat dijalankan oleh pelayan.

Oleh itu, apa yang boleh anda lakukan untuk mencegahnya? Pada akhirnya anda ingin menghentikan pengguna daripada dapat melaksanakan sebarang fail yang mereka muat naik. Secara lalai pelayan web tidak akan berusaha untuk melaksanakan fail dengan sambungan gambar, tetapi tidak hanya bergantung pada memeriksa pelanjutan fail kerana fail dengan nama image.webp.php telah diketahui dapat dilalui.

Beberapa pilihan adalah menamakan semula fail pada muat naik untuk memastikan peluasan fail yang betul, atau mengubah izin fail, misalnya, chmod 0666 sehingga tidak dapat dijalankan. Sekiranya menggunakan * nix, anda dapat membuat fail .htaccess (lihat di bawah) yang hanya akan membenarkan akses untuk menetapkan fail yang mencegah serangan peluasan berganda yang disebutkan sebelumnya.

tolak dari semua Fail ~ "^ w + . (gif | jpe? g | png) $"> pesanan tolak, izinkan dari semua / Fail>

Pada akhirnya, penyelesaian yang disyorkan adalah untuk mengelakkan akses langsung ke fail yang dimuat naik sama sekali. Dengan cara ini, setiap fail yang dimuat naik ke laman web anda disimpan dalam folder di luar webroot atau dalam pangkalan data sebagai gumpalan. Sekiranya fail anda tidak dapat diakses secara langsung, anda perlu membuat skrip untuk mengambil fail dari folder peribadi (atau pengendali HTTP di. NET) dan mengirimkannya ke penyemak imbas. Tag gambar menyokong atribut src yang bukan URL langsung ke gambar, jadi atribut src Anda dapat menunjuk ke skrip penyampaian fail Anda dengan syarat Anda menetapkan jenis konten yang tepat dalam tajuk HTTP. Sebagai contoh:

img src = "/ imageDelivery.php? id = 1234" />? php // imageDelivery.php // Ambil nama fail gambar dari pangkalan data berdasarkan $ _GET ["id"] ... // Kirimkan gambar ke Header penyemak imbas (' Jenis Kandungan: gambar / gif '); readfile ('images /'.$ fileName); ?> var13 ->

Sebilangan besar penyedia hosting menguruskan konfigurasi pelayan untuk anda, tetapi jika anda menghoskan laman web anda di pelayan anda sendiri maka ada beberapa perkara yang anda ingin periksa.

Pastikan anda mempunyai persediaan firewall, dan menyekat semua port yang tidak penting. Sekiranya boleh, tetapkan DMZ (Demilitarized Zone) yang hanya membenarkan akses ke port 80 dan 443 dari dunia luar. Walaupun ini mungkin tidak dapat dilakukan jika anda tidak mempunyai akses ke pelayan anda dari rangkaian dalaman kerana anda perlu membuka port untuk membolehkan memuat naik fail dan log masuk ke pelayan anda dari jarak jauh melalui SSH atau RDP.

Sekiranya anda membenarkan fail dimuat naik dari Internet, gunakan kaedah pengangkutan yang selamat ke pelayan anda seperti SFTP atau SSH.

Sekiranya mungkin, pangkalan data anda berjalan pada pelayan yang berbeza dengan pelayan web anda. Melakukan ini bermaksud pelayan pangkalan data tidak dapat diakses secara langsung dari dunia luar, hanya pelayan web anda yang dapat mengaksesnya, meminimumkan risiko data anda terkena.

Akhir sekali, jangan lupa menyekat akses fizikal ke pelayan anda.

08. Gunakan HTTPS

HTTPS adalah protokol yang digunakan untuk memberikan keselamatan melalui Internet. HTTPS menjamin bahawa pengguna bercakap dengan pelayan yang mereka harapkan, dan bahawa tidak ada orang lain yang dapat memintas atau mengubah kandungan yang mereka lihat dalam perjalanan.

Sekiranya anda mempunyai sesuatu yang mungkin diinginkan oleh pengguna anda, sangat disarankan untuk menggunakan HTTPS sahaja untuk menyampaikannya. Ini tentu saja bermaksud kad kredit dan halaman log masuk (dan URL yang mereka serahkan) tetapi biasanya lebih banyak dari laman web anda juga. Borang log masuk selalunya akan menetapkan kuki misalnya, yang dihantar dengan setiap permintaan lain ke laman web anda yang dibuat oleh pengguna yang dilog masuk, dan digunakan untuk mengesahkan permintaan tersebut. Penyerang yang mencuri ini dapat meniru pengguna dengan sempurna dan mengambil alih sesi log masuk mereka. Untuk mengalahkan serangan semacam ini, anda hampir selalu mahu menggunakan HTTPS untuk seluruh laman web anda.

Itu tidak lagi rumit atau mahal seperti dulu. Let's Encrypt menyediakan sijil percuma dan automatik, yang anda perlukan untuk mengaktifkan HTTPS, dan ada alat komuniti yang ada untuk pelbagai platform dan kerangka kerja umum untuk menyediakannya secara automatik untuk anda.

Terutama Google telah mengumumkan bahawa mereka akan meningkatkan Anda dalam peringkat carian jika anda menggunakan HTTPS, memberikan ini juga keuntungan SEO. HTTP yang tidak selamat akan keluar, dan sekarang masanya untuk meningkatkan.

Sudah menggunakan HTTPS di mana sahaja? Pergi lebih jauh dan lihatlah mengatur HTTP Strict Transport Security (HSTS), tajuk mudah yang boleh anda tambahkan ke respons pelayan anda untuk tidak membenarkan HTTP tidak selamat untuk seluruh domain anda.

09. Dapatkan alat keselamatan laman web

Setelah anda berfikir bahawa anda telah melakukan semua yang anda dapat maka sudah tiba masanya untuk menguji keselamatan laman web anda. Cara yang paling berkesan untuk melakukan ini adalah dengan menggunakan beberapa alat keselamatan laman web, yang sering disebut sebagai ujian penembusan atau ujian pen untuk jangka pendek.

Terdapat banyak produk komersial dan percuma untuk membantu anda dalam hal ini. Mereka bekerja dengan cara yang serupa dengan penggodam skrip kerana mereka menguji semua mengetahui eksploitasi dan berupaya menjejaskan laman web anda menggunakan beberapa kaedah yang disebutkan sebelumnya seperti SQL Injection.

Beberapa alat percuma yang patut dilihat:

  • Netsparker (Tersedia edisi komuniti dan versi percubaan). Bagus untuk menguji suntikan SQL dan XSS
  • OpenVAS Mengaku sebagai pengimbas keselamatan sumber terbuka yang paling maju. Bagus untuk menguji kelemahan yang diketahui, kini mengimbas lebih dari 25,000. Tetapi sukar untuk disiapkan dan memerlukan pelayan OpenVAS dipasang yang hanya berjalan pada * nix. OpenVAS adalah garpu Nessus sebelum menjadi produk komersial sumber tertutup.
  • SecurityHeaders.io (pemeriksaan dalam talian percuma). Alat untuk melaporkan tajuk keselamatan yang disebutkan di atas (seperti CSP dan HSTS) dengan cepat domain yang telah diaktifkan dan dikonfigurasi dengan betul.
  • Xenotix XSS Exploit Framework Alat dari OWASP (Open Web Application Security Project) yang merangkumi banyak pilihan contoh serangan XSS, yang boleh anda jalankan untuk mengesahkan dengan cepat sama ada input laman web anda rentan di Chrome, Firefox dan IE.

Hasil dari ujian automatik boleh menakutkan, kerana mereka menyajikan banyak masalah yang berpotensi.Yang penting ialah memberi tumpuan kepada masalah kritikal terlebih dahulu. Setiap masalah yang dilaporkan biasanya disertakan dengan penjelasan yang baik mengenai potensi kerentanan. Anda mungkin akan mendapati bahawa beberapa masalah sederhana / rendah tidak membimbangkan laman web anda.

Terdapat beberapa langkah selanjutnya yang boleh anda lakukan untuk mencuba kompromi laman web anda secara manual dengan mengubah nilai POST / GET. Proksi debugging dapat membantu anda di sini kerana ia membolehkan anda memintas nilai permintaan HTTP antara penyemak imbas dan pelayan anda. Aplikasi perisian percuma yang dikenali sebagai Fiddler adalah titik permulaan yang baik.

Oleh itu, apa yang harus anda cuba ubah berdasarkan permintaan tersebut? Sekiranya anda mempunyai halaman yang hanya dapat dilihat oleh pengguna yang log masuk maka cuba ubah parameter URL seperti id pengguna, atau nilai kuki dalam usaha untuk melihat perincian pengguna lain. Satu lagi bidang yang layak diuji adalah borang, mengubah nilai POST untuk berusaha menyerahkan kod untuk melakukan XSS atau memuat naik skrip sisi pelayan.

Terkini Posts.
Jadikan laman web anda boleh dicetak dengan CSS
Menemui

Jadikan laman web anda boleh dicetak dengan CSS

Pengetahuan yang diperlukan: C pertengahan, HTML a a Memerlukan: Penyunting tek , penyemak imba web, pencetak atau penjana PDF ebagai pencetakMa a Projek: 2-4 jamFail okonganBertahun-tahun yang lalu, ...
15 alat HTML5 untuk menjadikan hidup anda lebih mudah
Menemui

15 alat HTML5 untuk menjadikan hidup anda lebih mudah

HTML5 nampaknya telah wujud elama-lamanya tetapi ebenarnya baru dimuktamadkan pada bulan Oktober 2014 - walaupun telah dilak anakan ekitar lima tahun ebelumnya. emakin banyak laman web wari an web ber...
13 fon percuma yang menakutkan untuk Halloween
Menemui

13 fon percuma yang menakutkan untuk Halloween

Dengan menghampiri Halloween, anda mungkin akan dituga kan dengan ebilangan be ar reka bentuk bermu im yang memberi anda peluang untuk membiarkan i i gelap anda longgar. Tanpa fon yang betul, karya ya...