mengapa melewatkan id sesi sebagai parameter url tidak aman?
<p>saya baru-baru ini mengikuti diskusi, di mana satu orang menyatakan bahwa melewati id sesi karena parameter url tidak aman dan cookie harus digunakan sebagai gantinya. orang lain mengatakan sebaliknya dan berpendapat bahwa paypal, misalnya, melewatkan id sesi sebagai parameter url karena alasan keamanan.</p><p>apakah melewatkan id sesi sebagai parameter url benar-benar tidak aman? mengapa cookie lebih aman? kemungkinan apa yang dimiliki penyerang untuk kedua opsi (cookie dan parameter url)?</p>
<blockquote> <p>apakah melewatkan id sesi sebagai parameter url benar-benar tidak aman?</p> </blockquote><p>meskipun tidak <em> secara inheren tidak aman </em>, ini bisa menjadi masalah kecuali kodenya dirancang dengan sangat baik.</p><p>katakanlah saya mengunjungi forum favorit saya. itu masuk saya dan menambahkan id sesi saya ke url di setiap permintaan. saya menemukan topik yang sangat menarik, dan menyalin &amp; menempel url ke pesan instan ke teman saya.</p><p>kecuali jika aplikasi telah mengambil langkah-langkah untuk memastikan bahwa ada <em> beberapa </em> bentuk validasi pada id sesi, teman yang mengklik tautan itu <em> dapat </em> mewarisi sesi saya, dan kemudian akan dapat melakukan apa pun yang dapat saya lakukan, seperti saya.</p><p>dengan menyimpan pengidentifikasi sesi di cookie, anda sepenuhnya menghilangkan masalah berbagi tautan.</p><p>ada variasi pada tema ini yang disebut <a href="http://en.wikipedia.org/wiki/session\_fixation">fixation sesi</a> , yang melibatkan <em> yang disengaja </em> berbagi pengidentifikasi sesi untuk tujuan jahat. artikel wikipedia yang ditautkan membahas tentang cara kerja serangan ini dan perbedaannya dari <em> berbagi </em> yang tidak disengaja dari pengidentifikasi sesi.</p><blockquote> <p>mengapa cookie lebih aman?</p> </blockquote><p>cookie <em> dapat </em> lebih aman di sini, karena mereka bukan sesuatu yang dapat disalin dan ditempelkan oleh pengguna normal, atau bahkan dilihat dan dimodifikasi. itu adalah standar yang jauh lebih aman.</p><blockquote> <p>kemungkinan apa yang dimiliki penyerang untuk kedua opsi?</p> </blockquote><p><em> baik </em> dari metode ini aman dari serangan man-in-the-middle melalui komunikasi yang tidak terenkripsi. add-on browser, spyware dan nasties sisi klien lainnya juga dapat memata-matai kedua metode penyimpanan pengidentifikasi sesi.</p><p>dalam kedua kasus, validasi sisi server bahwa klien yang mengklaim memiliki id sesi adalah praktik terbaik. terdiri dari apa validasi ini untuk diperdebatkan. perlu diingat bahwa pengguna di belakang proxy perusahaan dapat melompat di antara alamat ip antara permintaan, jadi mengunci sesi ke alamat ip dapat secara tidak sengaja mengasingkan orang. artikel <a href="http://en.wikipedia.org/wiki/session\_fixation">fixation sesi</a> menyebutkan beberapa alternatif bermanfaat lainnya.</p>
<p>ini telah ditanyakan dalam stack overflow <a href="https://stackoverflow.com/questions/404040/how-do-you-like-your-primary-keys/404057#404057">di sini</a> dan <a href="https://stackoverflow.com/questions/829284/guid-vs-int-identity">di sini</a> .</p><p> <a href="http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html">posting jeff</a> menjelaskan banyak tentang pro dan kontra menggunakan guid.</p><blockquote> <h3>guid pro</h3> <ul> <li>unik di setiap tabel, setiap basis data, dan setiap server</li> <li>mengizinkan penggabungan catatan dengan mudah dari database yang berbeda</li> <li>mengizinkan distribusi basis data dengan mudah di beberapa server</li> <li>anda dapat membuat id di mana saja, alih-alih harus bolak-balik ke database</li> <li>sebagian besar skenario replikasi membutuhkan guid kolom pula</li> </ul> <h3>kontra guid</h3> <ul> <li>ini adalah kekalahan 4 kali lebih besar dari nilai indeks 4 byte tradisional; ini dapat memiliki implikasi kinerja dan penyimpanan yang serius jika anda tidak berhati-hati</li> <li>tidak praktis untuk debug (<code>where userid='{bae7df4-ddf-3rg-5ty3e3rf456as10}'</code>)</li> <li>guid yang dihasilkan sebagian harus berurutan untuk kinerja terbaik (misalnya, <code>newsequentialid()</code> pada sql server 2005+) dan untuk memungkinkan penggunaan indeks berkerumun</li> </ul> </blockquote><p>jika anda yakin tentang kinerja dan anda tidak berencana untuk mereplikasi atau menggabungkan catatan, maka gunakan <code>int</code>, dan atur secara otomatis peningkatan (<em> identitas benih di sql server </em>).</p> <p>saya tidak berpikir anda harus membengkokkan fakta untuk membuatnya terdengar lebih baik bagi pengguna pemula.</p><p>jika tombol-tombol log keluar maka pengguna harus mengatakan logout atau dapat mengatakan tutup atau akhiri sesi atau kata atau pernyataan lain apa pun yang identik dengan logout tetapi karena tidak keluar maka seharusnya tidak mengatakan keluar.</p> <p><strong> tergantung pada fungsi generasi anda dan ukuran tabel akhir </strong></p><p>guid dimaksudkan untuk menjadi <em> unik secara global</em> pengidentifikasi. seperti yang dibahas dalam <a href="http://www.postgresql.org/docs/8.3/static/datatype-uuid.html">dokumentasi postgres 8.</a> tidak ada metodologi yang secara universal sesuai untuk menghasilkan pengidentifikasi ini, tetapi postgresql tidak mengirim dengan beberapa kandidat yang lebih berguna.</p><p>dari ruang lingkup masalah anda, dan kebutuhan untuk <em> offline</em> menulis, anda telah dengan rapi menghapus penggunaan apa pun selain guid, dan oleh karena itu tidak ada keuntungan kompensasi dari skema lain.</p><p>dari sudut pandang fungsional, panjang kunci biasanya tidak menjadi masalah pada segala jenis sistem modern, tergantung pada jumlah bacaan dan ukuran tabel. sebagai metodologi alternatif, klien offline dapat mengelompokkan catatan baru <em> tanpa</em> kunci utama dan cukup memasukkannya saat menghubungkan kembali. karena postgresql menawarkan tipe data "serial", klien tidak akan perlu menentukan id jika mereka dapat melakukan penulisan sederhana ke database.</p> <p>saya pikir pesan-pesan ini menggunakan bahasa yang aneh untuk mem-bypass filter spam yang ada, bukan karena ada beberapa pesan rahasia yang dikodekan di dalamnya.</p> <p>ganti kata sandi. jika anda tidak dapat mengakses karena spammer mengubah kata sandi anda, hubungi dukungan facebook.</p><p>jika spammer adalah aplikasi, anda dapat mencabut haknya untuk mengakses akun anda dari halaman pengaturan akun anda.</p> <p>itu awal dari analogi yang bagus. namun lambda juga memiliki keterbatasan dalam hal cpu dan ram yang tersedia, dan waktu menjalankan maksimum 15 menit per doa. jadi apa pun yang membutuhkan lebih banyak sumber daya, atau perlu berjalan lebih dari 15 menit, akan lebih cocok untuk fargate.</p><p>juga saya tidak yakin mengapa anda mengatakan sesuatu lebih cocok untuk fargate karena anda "selalu membutuhkan setidaknya satu contoh berjalan". lambda + api gateway sangat cocok untuk panggilan api, api gateway selalu siap untuk menerima panggilan api dan kemudian akan memanggil fungsi lambda untuk memprosesnya (jika responsnya belum di-cache).</p> <p>statistik hanyalah bentuk metadata dinamis yang membantu pengoptimal kueri dalam membuat keputusan yang lebih baik. misalnya, jika hanya ada selusin baris dalam sebuah tabel, maka tidak ada gunanya pergi ke indeks untuk melakukan pencarian; anda akan selalu lebih baik melakukan pemindaian tabel penuh. tetapi jika tabel yang sama tumbuh hingga sejuta baris, maka anda mungkin akan lebih baik menggunakan indeks. tetapi jika anda kueri tabel itu pada kolom yang hanya memiliki sedikit nilai unik (misalnya itu mungkin kolom "jenis kelamin" yang hanya berisi "m" atau "f"), sebenarnya fts mungkin lebih baik daripada kasus itu karena anda ingin perlu mengambil blok pula untuk membangun set hasil. sekarang katakanlah meja anda adalah 99% "m" dan hanya 1% "f", kita harus fts dalam satu kasus atau menggunakan indeks dalam yang lain. tabel yang sama, permintaan yang sama, berpotensi empat paket permintaan yang berbeda tergantung pada isi tabel. hal-hal semacam ini adalah "statistik" dan bersifat individual untuk setiap basis data - bahkan dua basis data dengan tabel dan struktur indeks yang sama akan memiliki statistik yang berbeda.</p><p>singkatnya, dalam mesin basis data modern ada dua jenis optimisasi kueri: menulis ulang sql (optimasi berbasis aturan, seperti kompiler menulis ulang c anda agar lebih efisien) dan memilih jalur data yang tepat (optimasi berbasis biaya) , seperti kompiler jit yang mengidentifikasi hotspot saat runtime). anda hanya perlu khawatir tentang ini jika anda melihat pengoptimal kueri melakukan sesuatu yang jelas salah (mis. memilih fts saat anda <em>tah</em> indeks akan lebih baik).</p> <p>pertimbangkan untuk membuat tabel baru dengan skema yang sama ditambah kolom versi baris, dan tambahkan tampilan di atas kedua tabel yang melakukan gabungan semua. mintalah orang lain menggunakan tampilan, dan menulis alih-alih pemicu terhadap tabel &amp; tampilan yang mendasarinya.</p><p>sisipan harus dikirim ke tabel baru, pembaruan harus memindahkan data ke tabel baru, dan penghapusan harus diterapkan ke kedua tabel.</p><p>kemudian lakukan gerakan batch di latar belakang, pindahkan sebanyak mungkin catatan sekaligus ke tabel yang baru. anda masih dapat memiliki masalah konkurensi saat ini sedang berlangsung, dan beberapa rencana eksekusi craptacular, tetapi ini memungkinkan anda tetap online saat gerakan sedang berlangsung.</p><p>idealnya, anda memulai proses pada hari jumat sore untuk meminimalkan efek pada pengguna akhir, dan mencoba menyelesaikannya sebelum senin pagi. setelah siap, anda dapat mengubah tampilan menjadi hanya tabel baru, dan rencana eksekusi craptacular hilang. idealnya.</p><p>untuk menghindari pemicu pemicu saat data dimigrasi dalam kumpulan, lihat jumlah baris dalam tabel yang dihapus/dimasukkan dalam pemicu, dan lewati aktivitas jika mendekati jumlah baris dalam kumpulan anda.</p><hr><p>pada akhirnya, michael memutuskan untuk melewatkan tampilan (dan tidak menghapus dari tabel asli) untuk mendapatkan rencana yang lebih stabil. trade off pada dasarnya memegang dua salinan tabel. dia mengubahnya menjadi <a href="http://michaeljswart.com/2012/04/modifying-tables-online-part-1-migration-strategy/">serangkaian posting blog</a> .</p> <p>masalah dengan tombol sakelar seperti ini bermuara pada menggabungkan dua fungsi:</p><ul> <li>kemampuan untuk mengambil tindakan.</li> <li>menampilkan kondisi saat ini.</li> </ul><p>tujuan utama tombol adalah untuk mengambil tindakan, sehingga mereka harus terlihat menekan agar pengguna dapat mengambil tindakan dengan menekan. dengan juga menggunakannya untuk menampilkan keadaan, itu menyebabkan potensi kebingungan.</p><p>jika tombol ini menunjukkan jeda, apakah itu berarti statusnya dijeda atau tindakannya dijeda? dalam kasus play/pause, sepertinya konvensi sedang menunjukkan jeda berarti sedang dimainkan (seperti itunes). tetapi slacker.com melakukan yang sebaliknya (dan membingungkan saya karena saya lebih banyak menggunakan itunes).</p><p>kebingungan ini lebih buruk dalam situasi di mana konvensi tidak begitu kuat.</p><p>saya hampir selalu merekomendasikan menggunakan dua tombol yang saling eksklusif, menyoroti salah satu yang saat ini (beralih on/off, daripada fungsi 1/fungsi 2 beralih), dan menghubungkan secara visual dua tombol melalui kedekatan dan gaya. saya akan membuat pengecualian jika real estat adalah faktor pendorong, dan konvensi yang kuat dapat didirikan.</p><p>(btw, saya baru-baru ini membaca sebuah artikel yang menelusuri asal-usul memiliki jeda dan tombol berhenti untuk kaset reel-to-reel lama, dan berhenti itu benar-benar tidak perlu hari ini. namun saya tidak dapat menemukan referensi sekarang .. (ada orang lain yang memilikinya?)</p> selamat siang, mdterimakasih telah mengajukan pertanyaan di forum sehatq.insulin termasuk kedalam golongan obat high alert sama dengan narkotika karena efeknya yang bila salah penggunaannya dapat berbahaya. banyak jenis dan merek insulin yang tersedia di indonesia. kekuatan dan efek sampingnya juga beragam. efek samping yang dimaksud adalah gula darah yang turun terlalu rendah atau hipoglikemi.suntikan insulin menyebabkan sel-sel dalam tubuh menyerap lebih banyak glukosa / gula dari aliran darah. maka dosis terlalu banyak atau menyuntik pada waktu yang salah dapat menyebabkan penurunan gula darah yang berlebihan. gejala yang bisa timbul seperti :pusingsulit bicaralemasbingungpucatberkeringatotot-otot berkedutkejanghilang kesadaransebaiknya anda konsultasi kembali dengan dokter yang memberikan resep insulin agar dapat diatur kembali dosis dan waktu pemberiannya.salam sehat,dr. andre zaini