Flamboyan


Pecahan, nyata?

Ini memiliki fungsi luar biasa yang tidak dimiliki mainan lama saya; ini sangat baru sehingga ada banyak pertanyaan yang menunggu untuk diatasi; itu sempurna terletak di antarmuka antara informasi kuantum dan materi terkondensasi dan telah menarik banyak minat dan upaya dari kedua belah pihak; dan itu memberi saya alasan dan insentif baru untuk belajar lebih banyak matematika. Saya telah bersenang-senang bermain dengannya dalam beberapa tahun terakhir dan dalam prosesnya, saya memiliki peluang besar untuk bekerja dengan beberapa kolaborator yang luar biasa: Han Ma dan Mike Hermele di Boulder, Danau Ethan di MIT, Wilbur Shirley di Caltech , Kevin Slagle di U Toronto dan Zhenghan Wang di Station Q. Bersama-sama kami telah menulis beberapa makalah tentang hal ini, tetapi saya selalu merasa ada lebih banyak cerita yang menarik dan lebih banyak kegembiraan dalam diri saya daripada apa yang dapat dimuat dengan benar dalam makalah ilmiah. Ini adalah tentu saja pertanyaan alami untuk diajukan karena komputasi kuantum telah terbukti dimungkinkan, setidaknya secara teori, dan kemajuan eksperimental telah menunjukkan potensi besar. Kembali pada awal 2000-an, pertanyaan yang terus menarik dan membuat orang frustasi dalam informasi kuantum adalah bagaimana membangun hard drive kuantum untuk menyimpan informasi kuantum. Namun ternyata, pertanyaannya adalah salah satu pertanyaan menarik yang super mudah untuk dinyatakan, tetapi sangat sulit dijawab. Informasi kuantum, alih-alih hanya 0 dan 1, direpresentasikan menggunakan superposisi 0 dan 1, dan dapat diperiksa dengan cara yang tidak komutatif.Tetapi tidak untuk Jeongwan Haah, seorang mahasiswa pascasarjana yang tak kenal takut dalam kelompok Preskill di IQIM pada waktu itu, yang mengubah masalah dari dugaan menjadi pencarian komputer yang sistematis. Mengingat semua upaya yang sebelumnya gagal dan tanpa petunjuk tentang ke mana lagi harus mencari, masalah ini mungkin tampak seperti jalan buntu bagi banyak orang. Sebaliknya, jika mereka ingin bergerak, empat dari mereka harus berkoordinasi satu sama lain untuk bergerak bersama, jadi bahwa mereka tinggal di simpul struktur berbentuk fraktal! Gerakan terbatas partikel-kuasi mengarah ke dinamika yang lebih lambat pada energi rendah, membuat model lebih cocok untuk keperluan menyimpan informasi kuantum. Dalam sistem materi terkondensasi, apa yang kita ketahui dapat terjadi adalah bahwa eksitasi elementer dapat datang dalam bentuk partikel titik - biasanya disebut kuasi-partikel - yang kemudian dapat bergerak dan berinteraksi dengan eksitasi lainnya. Dalam model Jeongwan, yang sekarang sering disebut sebagai kode Haah, kegembiraan dasar masih datang dalam bentuk partikel titik, tetapi mereka tidak dapat bergerak dengan bebas. Saya merasa sangat tidak nyaman dan bersemangat pada saat yang sama karena ada sesuatu di luar sana yang seharusnya terkait dengan hal-hal yang saya tahu, namun saya benar-benar tidak mengerti caranya. Jeongwan, dengan kekuatan matematika ajaibnya, bekerja secara eksplisit banyak sifat menakjubkan dari model, tetapi bagi saya itu hanya menambah misteri. Pasti ada yang salah, tetapi saya tidak tahu apa itu dan saya tidak tahu bagaimana untuk mulai mencarinya. Saya seperti orang sakit pergi ke dokter tetapi tidak dapat menentukan apa yang salah.Yang menyenangkan dari model ini adalah bahwa bentuk interaksi lebih simetris, mengambil bentuk yang lebih sederhana, atau mirip dengan beberapa model lain yang kita kenal. Partikel-partikel kuasi tidak membutuhkan struktur berbentuk fraktal untuk bergerak, sebaliknya mereka bergerak sepanjang garis, di pesawat, atau di sudut persegi panjang. Jika kode Haah asli terlihat seperti ET dari luar bima sakti, model ini setidaknya tampaknya hidup di suatu tempat di tata surya. Bahkan, pada awal 2005 - enam tahun sebelum kode Haah, Claudio Chamon di Boston University sudah mengusulkan model semacam ini. Kendala lebih lemah dan model ini tidak membuat hard drive kuantum yang baik, tetapi mereka masih mewakili fenomena materi terkondensasi baru. Dalam makalah ini, mereka mendaftar beberapa model lain, yang, mirip dengan kode Haah, berisi rangsangan partikel semu yang gerakannya dibatasi. Bersama dengan contoh fraktal sebelumnya, model ini sekarang disebut sebagai model frakton.
Dua pendekatan yang menurut saya paling menarik adalah konstruksi lapisan berpasangan dan teori pengukur peringkat lebih tinggi, dan saya mengerjakan ide-ide ini bersama dengan Han Ma, Ethan Lake dan Michael Hermele. Dalam konstruksi lapisan berpasangan, koneksi ke teori pengukur diskrit 2D, sedangkan dalam pendekatan peringkat yang lebih tinggi adalah ke teori pengukur 3D elektromagnetisme. Orang-orang mendatangi model-model ini dengan dipersenjatai dengan alat favorit mereka dalam benda kental, mencari titik masuk untuk membukanya. Setiap pendekatan berasal dari perspektif yang berbeda dan membangun hubungan antara fraktur dan model fisik yang kita kenal.Kita tidak dapat menjawab pertanyaan dasar seperti rentang model apa yang membentuk suatu fase, apa urutan karakterisasi setiap fase, dan dalam hal apa topologi urutan itu. Contoh prototipikal adalah sistem Hall kuantum fraksional, yang degenerasi kondisi dasarnya ditentukan langsung oleh topologi manifold yang digunakan sistem. Ketika kata "topologis" ditambahkan di depan "urutan", itu menandakan bahwa sifat-sifat seperti itu biasanya terkait langsung dengan topologi sistem. Sebagai contoh, susunan kristal mengacu pada organisasi kisi reguler atom dalam fase padat dalam kisaran suhu dan tekanan terus menerus. Itu sebenarnya judul yang terlalu besar karena yang kami lakukan adalah mempelajari realisasi spesifik dari masing-masing model dan menganalisis sifat-sifat mereka. Kata "pesanan" mengacu pada properti umum dari berbagai model yang berkelanjutan dalam fase yang sama. Saya memberi ceramah tentang hasil ini di KITP musim gugur yang lalu dengan judul "Fracton Topological Order". Apakah mungkin untuk memiliki kisi kubik, atau yang serupa, di tiga manifold lainnya? Biasanya, permintaan semacam ini terlalu banyak untuk ditanyakan. Tetapi bagaimana cara mendapatkan lebih banyak poin data? Nah, dari kertas karya Haah, Vijay dan Fu, kami tahu bagaimana mendefinisikan model pada kisi kubik. Tetapi ternyata jika Anda membisikkan keinginan Anda kepada ahli matematika yang tepat, bahkan yang paling gila pun bisa menjadi kenyataan.Banyak hal mulai menjadi teknis dari sini, tetapi pelajaran dasar yang kami pelajari tentang beberapa model fraktur adalah bahwa secara struktural, mereka terlihat seperti bawang. Meskipun bawang terlihat seperti objek tiga dimensi dari luar, mereka sebenarnya tumbuh dalam struktur berlapis. (source)

Mengapa saya menghabiskan 1,5 bulan membuat emulator Game Boy?

Komputer lama sangat bagus, jadi koneksi seperti ini antara mesin bersejarah dan lingkungan komputasi modern terasa seperti perjalanan waktu. Mampu menjalankan kode dari arsitektur perangkat keras yang sama sekali berbeda selalu tampak seperti keajaiban. Bagi saya, jenis program komputer yang paling favorit adalah emulator. Setelah menonton The Ultimate GameBoy talkshow yang ditemukan di Hacker News, saya menyadari bahwa arsitektur Game Boy cukup sederhana dan mungkin menulis emulator yang sedang berjalan untuk mesin jenis ini tidak akan menjadi sulit - terutama bahwa itu didokumentasikan dengan baik juga. Saya membayangkan konstruksi saklar besar ini yang memilih operasi yang tepat untuk opcode CPU saat ini dan array yang memodelkan memori. Sebagai seorang pengembang saya sering berpikir tentang desain internal sebuah emulator. Itu juga sangat membuat ketagihan - setiap kali saya punya beberapa menit di siang hari dan pada dasarnya setiap malam saya merasakan dorongan yang tak tertahankan untuk menggerakkan emulasi sedikit ke depan - perbaiki yang aneh ini Bug GPU, lulus satu lagi uji kompatibilitas atau mengimplementasikan satu lagi fitur yang hilang. Saya kemudian menyadari bahwa itu tidak benar - membuat program kerja adalah suatu tantangan. Pada saat yang sama, itu adalah salah satu proyek sampingan yang paling menarik dan bermanfaat yang pernah saya miliki.Namun, itu bukan titik untuk menaklukkan pasar emulator GB, melainkan untuk sepenuhnya memahami arsitektur sistem komputer sederhana dan mengimplementasikannya dengan cara yang performan. Tentu saja itu - ada selusin emulator GB yang ada, dibuat dalam JS, C, Java, Rust, Python dan mungkin semua bahasa lainnya. Anggota keluarga saya yang melihat ini dan teman-teman yang mendengar hal ini dari saya sering bertanya apakah ini belum pernah dilakukan sebelumnya. Sebagai referensi, saya telah menggunakan GameBoy CPU Manual - kemudian saya menemukan bahwa ia memiliki beberapa kesalahan ketik dan tidak cukup spesifik untuk beberapa operasi. Namun, ketika Game Boy asli dimulai, ia mengeksekusi program 256-byte sederhana, semacam firmware yang menampilkan logo Nintendo dan menguji sendiri sistem. Setelah menerapkan opcode dan memori, saya ingin sekali memeriksa apakah mungkin untuk menjalankan beberapa kode di atasnya. Saya belum memiliki kartrij maupun emulasi GPU, sehingga bahkan permainan yang paling sederhana pun tidak akan menjadi pilihan. Ini juga memungkinkan untuk membagi pelaksanaan opcode tunggal menjadi beberapa fase, sehingga GPU dan bagian lain dari sistem Game Boy mengambil kesempatan untuk menjalankan logika mereka sendiri di antara pemuatan, dll. Pembicaraan Ultimate GameBoy yang disebutkan di atas berisi penjelasan yang cukup bagus tentang bagaimana Gameboy menyalin memori video ke layar, menggunakan fetcher. Untuk GPU, saya juga ingin mengemulasinya dengan baik seperti aslinya. Ukuran ROM untuk game ini hanya 32k, jadi tidak perlu menerapkan peralihan bank memori. Tujuan saya berikutnya adalah menjalankan permainan sederhana - seperti Tetris atau Dr Mario.
Setelah membaca Manual CPU GB dan perangkat suara Gameboy setidaknya beberapa kali, saya akhirnya bisa membuat kepala atau ekor ini. Menempatkan piksel pada layar itu mudah, tetapi menghasilkan efek suara dari awal adalah sepasang sepatu yang berbeda. Bagi saya, bekerja dengan suara entah bagaimana lebih sulit daripada mengimplementasikan grafik. Jika buffer penuh, itu memainkan suara dan seluruh emulasi dihentikan sampai selesai. Juga, saya mengandalkan Java Audio System untuk membuat emulator berjalan dengan kecepatan yang akurat. Akibatnya, laju pengambilan sampel audio menentukan seberapa cepat emulator seharusnya. Setelah menyelesaikan implementasi suara saya memiliki aplikasi yang bekerja dengan beberapa permainan, menabrak beberapa permainan lain, tetapi saya benar-benar tidak dapat mengatakan bagian mana dari program tersebut. diimplementasikan dengan benar dan di mana saya harus mencari bug potensial: apakah itu waktu CPU atau logika, menyela, beralih bank memori kartrid atau implementasi GPU, dll. Untungnya saya berlari ke tes GB Blragg - satu set ROM yang menguji berbagai aspek dari mesin yang diemulasi: instruksi CPU dan pengaturan waktunya, grafik, suara dan beberapa bug perangkat keras. Pada beberapa titik saya mengintegrasikan tes dengan proses build dan Travis, sehingga tes berbasis ROM sekarang dijalankan di awan setiap kali saya mendorong ubah ke GitHub. Saya pikir memaksa emulator untuk lulus dari semua tes ini memakan waktu lebih lama daripada menulis versi kode yang belum diuji di tempat pertama.Untuk mendapatkan daftar hal-hal yang harus ditambahkan, saya mengambil Pan Docs mencari "CGB". Entah bagaimana saya berharap bahwa arsitektur GBC hampir identik dengan arsitektur GB klasik, dengan beberapa perbedaan. Hal terakhir dalam daftar TODO saya adalah menambahkan dukungan untuk Gameboy Color. Ini bukan kompetisi untuk aplikasi paling populer di kategori, seperti Gambatte - untuk ini, tidak ada beberapa fitur berguna yang tidak terkait langsung dengan sistem GB itu sendiri, seperti GUI yang bagus, snapshot save, dll. Emulator saya berfungsi cukup baik dengan sebagian besar game yang saya coba, meskipun kinerjanya mungkin sedikit lebih baik. (source)

Bagaimana kami meluncurkan salah satu migrasi Python 3 terbesar yang pernah ada

Dropbox adalah salah satu aplikasi desktop paling populer di dunia: Anda dapat menginstalnya hari ini di Windows, macOS, dan beberapa rasa Linux. Faktanya, baris kode Drew pertama untuk Dropbox ditulis dalam Python untuk Windows menggunakan pustaka yang dihormati seperti pywin32. Apa yang Anda mungkin tidak tahu adalah bahwa sebagian besar aplikasi ditulis menggunakan Python. Posting ini adalah yang pertama dalam seri yang mengeksplorasi bagaimana kami merencanakan, mengeksekusi, dan meluncurkan salah satu migrasi Python 3 terbesar yang pernah ada. Transisi ini sekarang selesai: Jika Anda menggunakan Dropbox hari ini, aplikasi ini ditenagai oleh varian Dropthon Python 3.5 yang disesuaikan. Meskipun kami telah mengandalkan Python 2 selama bertahun-tahun, kami mulai pindah ke Python 3 pada tahun 2015. Ini masih agak benar, meskipun sekarang telah mencapai dukungan luas, dengan beberapa proyek yang sangat populer seperti Django menjatuhkan dukungan Python 2 sepenuhnya. Adopsi Python 3 telah lama menjadi bahan perdebatan di komunitas Python. Awalnya, kami mengandalkan skrip "freezer" untuk membuat aplikasi asli untuk setiap platform yang didukung. Namun, daripada menggunakan toolchain asli secara langsung, seperti Xcode untuk macOS, kami mendelegasikan pembuatan binari yang sesuai platform ke py2exe untuk Windows, py2app untuk macOS, dan bbfreeze untuk Linux. Sistem build yang berfokus pada Python ini terinspirasi oleh distutils: Aplikasi kami pada awalnya sedikit lebih dari sebuah paket Python, jadi kami memiliki satu skrip setup.py-like untuk membangunnya.Bahkan, kode kami sekarang terdiri dari campuran TypeScript / HTML, Rust, dan Python, serta Objective-C dan C ++ untuk beberapa integrasi platform tertentu. Untuk mendukung semua komponen ini, skrip setup.py ini — secara internal dinamai build-all.py — tumbuh menjadi begitu besar dan berantakan sehingga sulit dipertahankan. Saat ini, Python bukan lagi satu-satunya bahasa yang digunakan untuk pengembangan. Seiring waktu, basis kode kami menjadi lebih dan lebih heterogen. Titik kritis datang dari perubahan bagaimana kami berintegrasi dengan masing-masing sistem operasi: Pertama, kami mulai memperkenalkan ekstensi OS yang semakin canggih — seperti komponen kernel Smart Sync — yang tidak bisa dan sering tidak boleh t ditulis dengan Python. Kedua, vendor seperti Microsoft dan Apple mulai memperkenalkan persyaratan baru untuk menyebarkan aplikasi yang memberlakukan penggunaan alat baru, lebih canggih, dan sering kali berpemilik. Tidak hanya API, ekstensi FinderSync adalah paket aplikasi lengkap dan persyaratan yang lebih ketat untuk antar proses komunikasi. Di macOS, misalnya, versi 10.10 memperkenalkan ekstensi aplikasi baru untuk diintegrasikan dengan Finder:. Dengan kata lain: Xcode menjadikan pengungkitan ekstensi ini mudah, sementara py2app tidak mendukung semuanya. Sementara kami tahu bahwa kami ingin bermigrasi ke Python 3, ini memberi kami pilihan: berinvestasi dalam dependensi freezer untuk menambahkan dukungan untuk Python 3, atau menjauh dari sistem build Python-centric, menghilangkan "freezer" sama sekali. Kami memilih yang terakhir.
Catatan tentang pyinstaller: Kami serius mempertimbangkan menggunakannya pada tahap awal proyek, tetapi itu tidak mendukung Python 3 pada saat itu, dan yang lebih penting, itu menderita keterbatasan yang sama seperti freezer lainnya. Apapun itu, ini adalah proyek yang mengesankan yang kami rasa tidak sesuai dengan kebutuhan kami. Lebih baik daripada mendelegasikan proses ini ke freezer, kami akan menggunakan alat khusus untuk setiap platform untuk membangun sendiri berbagai titik masuk. Untuk mengatasi masalah build dan deploy ini, kami memutuskan arsitektur baru untuk menyematkan runtime Python di aplikasi asli kami. Selanjutnya, kita akan abstrak kode Python di belakang perpustakaan, yang bertujuan untuk lebih langsung mendukung "pencampuran dan pencocokan" dari berbagai bahasa. Mengikat ini kembali ke migrasi Python 3, dengan demikian proses akan memerlukan dua langkah: pertama, untuk mengimplementasikan arsitektur baru sekitar Python 2, dan kedua, untuk menggunakannya untuk "menukar" Python 2 mendukung Python 3. Modularitas yang meningkat arsitektur ini juga akan memberikan efek samping utama: Sekarang mungkin untuk menggunakan kedua perpustakaan Python 2 dan Python 3 pustaka berdampingan. Pertama, kami mengabstraksi pekerjaan mengkonfigurasi runtime Python dan mulai utas Python ke pustaka baru bernama libdropbox_bootstrap. Perpustakaan ini akan mereplikasi beberapa apa yang disediakan skrip freezer.Fungsi baru, misalnya, memungkinkan kami untuk mengisolasi kode kami tanpa harus melakukan beberapa pekerjaan isolasi yang lebih rumit yang harus dilakukan skrip freezer pada Python 2. Mengisolasi juru bahasa Python kami Ini mencegah aplikasi kami menjalankan perangkat Python lain pada perangkat sumber. Untuk mendukung ini dengan Python 2, kami mem-portingkan fungsi ini ke garpu khusus kami. Menariknya, Python 3 membuat jenis penyematan ini menjadi lebih sederhana. Titik masuk ini dibuat menggunakan perkakas "standar" setiap platform: Visual Studio, Xcode, dan make digunakan daripada distutil, memungkinkan kami untuk menghapus banyak tambalan khusus yang dikenakan pada skrip freezer. Misalnya, pada Windows, konfigurasi DEP / NX yang sangat disederhanakan ini untuk Dropbox.exe, menyematkan manifes aplikasi serta termasuk sumber daya. Kedua, kami memperkenalkan titik entri khusus platform Dropbox.exe, Dropbox.app, dan dropboxd untuk memanfaatkan pustaka ini. Untuk transisi dengan benar, kami membutuhkan versi yang mampu mendukung Python 2 dan 3 secara bersamaan, jadi kami menetap di Visual Studio 2013. Untuk mendukungnya, kami secara ekstensif mengubah garpu khusus kami dari Python 2 untuk membuatnya dikompilasi dengan benar menggunakan versi itu. Biaya dari perubahan ini semakin memperkuat keyakinan kami bahwa pindah ke Python 3 adalah keputusan yang tepat. Catatan tentang Windows: Pada titik ini, terus menggunakan Visual Studio 2008 menjadi sangat mahal.Berhasil membuat transisi dengan ukuran ini akan membutuhkan proses bertahap: Kami tidak bisa hanya "membalik saklar" dalam satu rilis — ini terutama benar karena proses rilis kami, yang menyebarkan versi baru ke semua pengguna kami setiap dua minggu. Harus ada cara untuk mengekspos sejumlah kecil / semakin banyak pengguna ke Python 3 untuk mendeteksi dan memperbaiki bug lebih awal. Ini memungkinkan kami untuk mengatur pekerjaan tambahan dalam infrastruktur CI kami untuk menjalankan unit dan tes integrasi yang menargetkan Python 3. Kami juga mengintegrasikan pemeriksaan otomatis ke antrian komit kami untuk mencegah perubahan didorong yang akan mengurangi dukungan Python 3. Dengan ini, kami dapat secara dinamis memilih versi Python ketika meluncurkan klien Dropbox. Kami kemudian memperluas ini ke sebagian kecil dari populasi Beta kami - yang jauh lebih heterogen ketika datang ke versi OS - akhirnya berkembang ke Stable kami saluran: Dalam 7 bulan, semua pemasangan Dropbox menjalankan Python 3. Untuk memaksimalkan kualitas, kami mengadopsi kebijakan yang mewajibkan semua bug yang diidentifikasi sebagai terkait migrasi diselidiki dan diperbaiki sepenuhnya sebelum memperluas jumlah pengguna yang terpapar. Kami pertama kali meluncurkan perubahan ke Dropboxers, yang memungkinkan kami mengidentifikasi dan memperbaiki sebagian besar masalah mendasar. Setelah kami mendapatkan kepercayaan yang cukup melalui pengujian otomatis, kami mulai meluncurkan Python 3 kepada pengguna nyata. Ini dicapai dengan secara bertahap memilih klien melalui gerbang fitur jarak jauh. (source)

Negara-Negara Tempat Senyum Membuat Anda Terlihat Bodoh

Inilah sesuatu yang selalu membingungkan saya, tumbuh di AS sebagai anak dari orang tua Rusia. Setiap kali saya atau teman saya mengambil foto kami, kami disuruh mengatakan "keju" dan tersenyum. Foto-foto kelulusan sekolah menengah orang tua saya menunjukkan mereka bermain-main di bellbottoms dengan teman sekelas muda mereka, tampak benar-benar kecewa. Tetapi jika orang tua saya juga ada di foto, mereka berwajah batu. Ini tidak berarti kita semua tidak bahagia! Justru sebaliknya: Penguasa yang jantan, vodka, gundukan krim asam yang tak ada habisnya — mereka menyenangkan bagi sebagian orang. Hanya saja, menyeringai tanpa sebab bukanlah keterampilan yang dimiliki atau dirasakan orang Rusia untuk berkultivasi. Jadi mengapa ini? Mengapa beberapa masyarakat tidak mendorong senyum kasual? Saya mendapat jawaban saya, atau setidaknya sebagian dari itu, ketika saya menemukan makalah baru oleh Kuba Krys, seorang psikolog di Akademi Ilmu Pengetahuan Polandia. Krys berfokus pada fenomena budaya yang disebut "penghindaran ketidakpastian." Budaya yang rendah dalam skala ini cenderung memiliki sistem sosial — pengadilan, sistem perawatan kesehatan, jaring pengaman, dan sebagainya — yang tidak stabil. Mengapa Anda tersenyum ketika nasib adalah serigala tak terlihat yang menunggu untuk merobek Anda? Anda mungkin, di negara-negara "low-UA" itu, bahkan dianggap bodoh karena tersenyum. Tersenyum adalah tanda kepastian dan kepercayaan diri, jadi ketika orang-orang di negara-negara itu tersenyum, mereka mungkin terlihat aneh. Ketika semua orang berusaha saling menindas, Anda tidak tahu apakah seseorang tersenyum dengan niat baik, atau karena mereka mencoba menipu Anda.
Untuk menguji teori ini, Krys meminta ribuan orang di 44 negara untuk menilai serangkaian delapan wajah yang tersenyum dan tidak tersenyum pada skala kejujuran dan kecerdasan. Dia membandingkan jawaban mereka dengan peringkat penghindaran ketidakpastian negara dari sebuah studi tahun 2004 tentang 62 masyarakat dan peringkat korupsi. Bahkan setelah mengendalikan faktor-faktor lain, seperti ekonomi, ada korelasi kuat antara seberapa tidak terduga suatu masyarakat dan kemungkinan mereka akan melakukannya. anggap tersenyum tidak cerdas. Dia menemukan bahwa di negara-negara seperti Jerman, Swiss, Cina, dan Malaysia, wajah yang tersenyum dinilai jauh lebih cerdas daripada orang yang tidak tersenyum. Tetapi di Jepang, India, Iran, Korea Selatan, dan — Anda dapat menebaknya — Rusia, wajah-wajah yang tersenyum dianggap secara signifikan kurang cerdas. Namun perlu dicatat bahwa penelitian lain menemukan mungkin ada faktor-faktor lain, seperti seberapa hierarkis atau maskulin suatu budaya. yaitu, yang memainkan peran lebih besar dalam ekspresi emosi — yang tentu saja merupakan bagian dari senyum. Dan ada bukti bahwa beberapa budaya tidak menghargai kebahagiaan dengan sangat tinggi, yang akan memengaruhi seberapa sering orang di sana memaksakan diri untuk menyeringai. Yang membingungkan, ada seluruh sistem peringkat penghindaran ketidakpastian lainnya, yang dirancang oleh peneliti berbeda bernama Geert Hofstede di tahun 1980-an, dan dua peringkat memiliki hasil yang sama sekali berbeda. Anda tahu apa yang mereka katakan tentang mencoba memahami Rusia dengan pikiran saja, dan ternyata kuesioner tidak jauh lebih baik. (source)

American Express menyingkirkan tanda tangan untuk pembelian kartu kredit

Tidak seperti perusahaan kartu lainnya, American Express menghilangkan tanda tangan secara global, bukan hanya di AS. Sebagai perbandingan, kebijakan American Express saat ini adalah bahwa pelanggan tidak harus menandatangani pembelian di bawah $ 50 di AS, di bawah $ 100 CAD di Kanada, atau di bawah £ 30 di Inggris. (source)

Bagaimana Biohacking Dapat Membantu Anda Mencapai Tingkat Kinerja Yang Lebih Tinggi

Orang-orang seperti Dave Asprey dan Tim Ferriss, yang melalui buku-buku dan podcast mereka berbagi ide-ide biohacking perintis, mempopulerkan istilah ini. Ketika Anda tidak mengoptimalkan tidur Anda, minum suplemen, dan melakukan latihan fisik tertentu, Anda cenderung kehilangan daya saing Anda . Saat ini, terutama di kalangan teknologi, meningkatkan kinerja Anda adalah suatu keharusan. Saya menerapkan sebagian besar dari mereka sendiri, dan mereka mengubah hidup saya menjadi lebih baik dalam banyak hal. Dalam artikel ini, kita akan melihat beberapa ide terbaik di departemen biohacking. Dalam sebuah wawancara baru-baru ini tentang "Teori Dampak" oleh Tom Bilyeu, The Iceman mengatakan bahwa kita terlalu meremehkan jumlah kontrol yang dapat kita berikan pada pikiran dan tubuh. Dia mengklaim bahwa dengan menggunakan metodenya, Anda dapat mengurangi peradangan, memiliki lebih banyak energi dan tidak pernah terserang flu lagi. Selain teknik pernapasan khusus, ia merekomendasikan untuk mandi setidaknya satu kali sehari. Satu hal yang dapat membantu di sini adalah ramuan berkafein yang dikembangkan oleh Dave Asprey, yang menyebutnya "kopi anti peluru." Alih-alih makan sarapan normal, Anda bisa mencampurkan kopi Anda dengan dua sendok makan minyak kelapa dan satu sendok makan minyak MCT. Campuran ini akan membuat Anda waspada selama berjam-jam dan mencegah kelaparan tidak seperti yang lain. Banyak pemain top menggunakan Oura Ring, alat pelacak tidur berteknologi tinggi untuk melihat berapa banyak waktu mereka tidur, pada tahap tidur mana dan bagaimana ini berubah dari waktu ke waktu. Itulah mengapa biohackers bekerja keras untuk mengoptimalkan setiap menitnya.
Gagasan lain untuk meningkatkan kualitas tidur Anda termasuk menutup kamar tidur Anda untuk membantu Anda menghasilkan melatonin dan menggunakan kacamata menghalangi cahaya biru. Kacamata sederhana ini, yang harganya $ 20- $ 50, akan memblokir spektrum cahaya biru yang dipancarkan oleh lampu LED dan layar komputer. Dan ketika Anda bangun, Anda dapat menghidupkan salah satu perangkat terapi cahaya Anda untuk membantu Anda bangun. Ada lebih banyak hal untuk optimasi tidur daripada itu, tetapi ini adalah dasar-dasar yang perlu diingat. Otak manusia mengkonsumsi sekitar 20 persen dari seluruh energi kita, lebih dari organ lainnya, dan sinyal "menembak" di jutaan neuron tidak tugas yang mudah. Itulah sebabnya banyak pemain poker melihat cara mereka dapat meningkatkan mesin otak mereka untuk mengecoh lawan mereka. Kegiatan ini, terutama di korteks prefrontal sangat meningkat selama tugas-tugas mental yang menuntut. Salah satu pelopor dalam departemen ini adalah Jason Koon, yang melalui partisipasinya dalam turnamen poker hidup dan online mengumpulkan lebih dari $ 22 juta dalam pendapatan. Pada 2017, ia bahkan menyelenggarakan seminar biohacking yang berfokus semata-mata untuk meningkatkan permainan poker. Dia bahkan belum berusia pertengahan 30-an, jadi dia harus melakukan sesuatu dengan benar. Biohacking terus merembes ke dunia olahraga, dan banyak atlet top menggunakannya untuk menyelesaikan prestasi yang luar biasa. Ini berarti melalui triathlon lima kali dalam waktu kurang dari seminggu, melompat dari satu pulau eksotis ke pulau lainnya. Salah satunya adalah Rich Roll, salah satu biohackers top di dunia, yang menyelesaikan Tantangan EPIC5.Yang lebih mengesankan adalah dia mengikuti diet vegan yang ketat, yang menunjukkan dengan jelas bahwa Anda harus mengikuti diet keto atau paleo untuk mencapai kinerja terbaik. Tidak masalah jika Anda ingin menghancurkan lawan Anda selama pertarungan berikutnya di Texas Hold ' em, game FPS online seperti Counter-Strike atau proyek bisnis yang akan mengubah industri Anda: trik sederhana yang disebutkan dalam artikel ini akan membantu Anda meningkatkan. Seperti yang Anda lihat, ada banyak cara di mana Anda dapat membawa kinerja Anda ke tingkat selanjutnya, dengan menggunakan biohacking. (source)

Takik iPhone buruk terjadi pada ponsel Android yang baik

Zenfone 5 terlihat dan terasa seperti ponsel yang menjanjikan, menampilkan pengeras suara, sensor pencitraan Sony terbaru dengan piksel lebih besar dari rata-rata, dan harga di suatu tempat di selatan $ 499. Saya seharusnya merayakannya sekarang, tetapi sebaliknya saya berpaling dengan jijik ketika Asus membungkuk untuk menyalin dengan menyebut Apple "Perusahaan Buah" berulang kali. Asus adalah salah satu perusahaan elektronik konsumen terbesar di dunia, namun tiruan tiruannya mungkin yang paling menyakitkan dari mereka semua. Jika Anda akan menyalin iPhone, setidaknya memiliki kesopanan untuk menghindari mencoba mengejeknya. Asus dkk memiliki "dagu" yang cukup besar di bagian bawah ponsel mereka, sehingga guntingan di bagian atas jelas termotivasi oleh keinginan untuk hanya melihat - tidak berfungsi, terlihat - seperti iPhone X. Kedudukan Apple di bagian atas iPhone X memungkinkan perusahaan untuk memiliki layar yang hampir tanpa batas di tempat lain, plus itu mengakomodasi lubang suara dan kamera TrueDepth untuk Face ID. Saya benar-benar yakin bahwa setiap orang, termasuk Apple, menyalin atau meminjam ide dari semua orang di industri seluler. Jika saya menantang Anda untuk menggambarkan seperti apa Zenfone 4 atau Zenfone 6, Anda akan berjuang - tetapi kita semua tahu bahwa Zenfone 5 adalah tiruan iPhone X yang tidak tahu malu. Saya juga melihat Zenfone 5 Lite di MWC, yang memiliki desain lebih sederhana dengan bezel simetris, meski masih kecil, tetapi terasa anonim jika dibandingkan. Kemasyhuran dan perhatian semacam itu bernilai bagi pesaing yang lebih kecil di pasar ponsel cerdas seperti Asus, Ulefone, Doogee, dan Noa.
Mungkinkah itu karena LG harus berjuang untuk mendesain ulang ponselnya agar lebih mirip iPhone X? LG tidak akan memberi tahu Anda, tetapi saya mendorong Anda untuk melihat gambar G7 dan memutuskan sendiri. Selama beberapa tahun terakhir, LG berusaha keras untuk meluncurkan ponsel andalannya bersamaan dengan peluncuran besar Samsung di MWC, tetapi tahun ini LG akan terlambat tiga bulan. Saya telah memverifikasi sendiri bahwa kebocoran LG G7 di atas, yang dipamerkan di balik pintu tertutup di MWC 2018, adalah sah. Di bagian belakang, Huawei menempatkan kameranya di tempat dan orientasi yang sama seperti pada iPhone, dan pada depan itu memperkenalkan takik kecil di bagian atas bersekutu dengan bezel yang cukup besar di bagian bawah. Seperti Asus Zenfone 5, P20 terlihat seperti menyalin iPhone X di bagian depan dan belakang. Apple mengambil langkah berisiko memperkenalkan takik tanda tangannya, dan respons positif dari pemilik iPhone X bersama dengan reaksi industri di MWC minggu ini. telah membuktikan pilihan itu. Orang-orang akan dengan cepat mengetahui bahwa semua notch tidak dibuat sama dan kali ini tahun depan kita mungkin akan melihat beberapa disfigurasi perangkat Android lainnya sebagai percobaan terbaru. Karena setiap produsen ponsel mengejar filosofi desain minimalis, muncul masalah tentang bagaimana menambah pesona, kemanusiaan, dan karakter ke perangkat yang pada dasarnya menjadi layar lebar. Orang lain akan naik coattails iPhone X, mereka akan menyerap beberapa efek halo dengan membunyikan layar mereka sendiri, tetapi mode itu tidak akan bertahan lama.Mereka terjebak dengan desain yang telah mereka kembangkan selama berbulan-bulan dan bertahun-tahun, sedangkan yang lain terburu-buru melemparkan sesuatu untuk MWC - seperti Asus, yang unggulannya Zenfone 5Z tidak akan keluar sampai Juni - atau mendorong semuanya kembali agar menjadi dapat Frankenstein iPhone X takik ke perangkat keras terbaru mereka. Bahkan OnePlus 6 tampaknya akan bergabung dengan tren, yang tidak mengherankan mengingat betapa miripnya OnePlus 5 dengan iPhone 7. Sudah merupakan keputusan desain radikal batas untuk hanya memiliki telepon tanpa kedudukan, itulah yang dilakukan Samsung, HMD. Global, dan Sony semua melakukannya. Plagiarisme iPhone dapat menimbulkan hype dan kemasyhuran untuk sementara waktu, tetapi itu membuat perusahaan-perusahaan ini rentan terhadap keinginan Apple, dan itu tidak pernah memungkinkan mereka untuk membangun bahasa dan filosofi desain mereka sendiri yang independen. Samsung melompat dari kereta musik ini beberapa tahun yang lalu, dan itu menguntungkan membangun silsilah desain yang sekarang jelas miliknya sendiri. (source)

Bumble sekarang memungkinkan Anda menekan tiduran untuk mengambil jeda dari ponsel Anda

Anda dapat mengatur status seperti "bepergian," "fokus pada pekerjaan," "pada detoksifikasi digital," atau "memprioritaskan diri saya," tetapi Anda tidak perlu memberikan alasan jika Anda tidak menginginkannya. Pengaturan memungkinkan Anda untuk istirahat selama 24 jam, 72 jam, seminggu, atau tanpa batas. Masuk ke mode Tunda akan membuat profil Anda tidak terlihat, dan Anda tidak akan muncul di swous carousel. Kedua iOS 12 dan Android Pie menambahkan alat kesejahteraan digital untuk membantu orang mengelola hubungan mereka dengan ponsel mereka dengan lebih baik, dan Instagram dan Facebook memiliki mengumumkan mereka menambahkan dasbor yang akan memberi tahu Anda berapa banyak waktu yang Anda habiskan di aplikasi mereka. Fitur Tunda Bumble adalah pengulangan terbaru dari tren ini, tetapi mungkin yang pertama yang membuat orang lain tahu bahwa Anda sengaja mengambil langkah mundur, yang menormalkan pengambilan jeda digital. Dunia teknologi mulai menyadari bahwa terlalu banyak menggunakan produk digitalnya sendiri dapat berbahaya bagi pengguna. (source)

Keracunan Cache Web Praktis

Saya akan mengilustrasikan dan mengembangkan teknik ini dengan kerentanan yang memberi saya kontrol atas banyak situs web dan kerangka kerja populer, berkembang dari serangan permintaan tunggal sederhana ke rantai eksploitasi rumit yang membajak JavaScript, berporos di seluruh lapisan cache, menumbangkan media sosial dan layanan cloud misdirect. Saya akan menyelesaikannya dengan membahas pertahanan terhadap keracunan cache, dan merilis sumber terbuka ekstensi Komunitas Burp Suite yang memicu penelitian ini. Tembolok cache diletakkan di antara pengguna dan server aplikasi, tempat mereka menyimpan dan menyajikan salinan tanggapan tertentu. Untuk memahami keracunan cache, kita perlu melihat secara cepat dasar-dasar caching. Beberapa perusahaan meng-host cache mereka sendiri menggunakan perangkat lunak seperti Varnish, dan yang lain memilih untuk mengandalkan Jaringan Pengiriman Konten seperti Cloudflare, dengan cache yang tersebar di lokasi geografis . Caching dimaksudkan untuk mempercepat pemuatan halaman dengan mengurangi latensi, dan juga mengurangi beban pada server aplikasi. Juga, beberapa aplikasi dan kerangka kerja web populer seperti Drupal memiliki cache bawaan. Kapan pun cache menerima permintaan untuk sumber daya, ia perlu memutuskan apakah ia memiliki salinan dari sumber daya yang tepat ini yang telah disimpan dan dapat menjawabnya, atau jika perlu meneruskan permintaan ke server aplikasi. Konsep caching mungkin terdengar bersih dan sederhana, tetapi menyembunyikan beberapa asumsi yang berisiko.dalam praktiknya, header Vary hanya digunakan dengan cara yang belum sempurna, CDN seperti Cloudflare langsung mengabaikannya, dan orang-orang bahkan tidak menyadari aplikasi mereka mendukung input berbasis header apa pun. Ini mengisyaratkan masalah - perbedaan dalam respons yang dipicu oleh input yang tidak dikunci dapat disimpan dan disajikan kepada pengguna lain. Secara teori, situs dapat menggunakan tajuk respons 'Bervariasi' untuk menentukan tajuk permintaan tambahan yang harus dikunci. Akibatnya, halaman akan disajikan dalam bahasa yang salah kepada pengunjung kedua. Ini bukan satu-satunya cara meracuni cache - Anda juga dapat menggunakan HTTP Response Splitting dan Request Smuggling - tapi saya pikir ini yang terbaik. Harap perhatikan bahwa cache web juga memungkinkan berbagai jenis serangan yang disebut Web Cache Deception yang tidak boleh dikacaukan dengan keracunan cache. Dalam makalah ini, kita akan meracuni cache menggunakan input yang tidak dikunci seperti header HTTP. Setelah menemukan input yang tidak dikunci, langkah selanjutnya adalah menilai seberapa banyak kerusakan yang dapat Anda lakukan dengannya, kemudian coba dan simpan di cache. Jika gagal, Anda harus mendapatkan pemahaman yang lebih baik tentang cara kerja cache dan memburu halaman target yang bisa di-cache sebelum mencoba lagi. Apakah suatu halaman di-cache mungkin didasarkan pada berbagai faktor termasuk ekstensi file, tipe konten, rute, kode status, dan header respons. Jika Anda memiliki Param Miner dimuat, Anda dapat memastikan setiap permintaan memiliki kunci cache yang unik dengan menambahkan parameter dengan nilai $ randomplz ke string kueri. Respons yang di-cache dapat menutupi input yang tidak dikunci, jadi jika Anda mencoba mendeteksi atau menjelajahi input yang tidak dikunci secara manual, cache-buster sangat penting.Semua kerentanan yang dibahas di sini telah dilaporkan dan ditambal, meskipun karena program 'pribadi' saya terpaksa harus mengurangi beberapa. Mari kita lihat apa yang terjadi ketika metodologi diterapkan ke situs web nyata. Seperti biasa, saya telah secara eksklusif menargetkan situs dengan kebijakan keamanan yang ramah peneliti. Banyak dari studi kasus ini mengeksploitasi kerentanan sekunder seperti XSS pada input yang tidak dikunci, dan penting untuk diingat bahwa tanpa keracunan cache, kerentanan seperti itu tidak berguna karena tidak ada yang dapat diandalkan cara untuk memaksa pengguna lain untuk mengirim header khusus pada permintaan lintas-domain. Mungkin itulah sebabnya mereka mudah ditemukan. Langkah terakhir adalah memeriksa apakah respons ini telah disimpan dalam cache sehingga akan dikirim ke pengguna lain. Jangan biarkan tajuk 'Cache Control: no-cache' menghalangi Anda - selalu lebih baik untuk mencoba serangan daripada menganggapnya tidak akan berhasil. Terlihat bagus - kami baru saja mengonfirmasi bahwa kami dapat menyebabkan respons yang akan mengeksekusi JavaScript sewenang-wenang terhadap siapa pun yang melihatnya. Penyerang berpotensi dapat menghindari masalah ini dengan merekayasa balik sistem kedaluwarsa cache target dan memprediksi waktu kadaluwarsa yang tepat dengan membaca dokumentasi dan memantau situs dari waktu ke waktu, tetapi itu terdengar jelas seperti kerja keras. Ini dapat dicoba dengan menggunakan alat seperti Burp Intruder atau skrip khusus untuk mengirim sejumlah besar permintaan, tetapi pendekatan yang padat lalu lintas seperti itu hampir tidak kentara.Header respons 'Umur' dan 'usia maks' masing-masing menentukan usia respons saat ini, dan usia di mana ia akan kedaluwarsa. Secara keseluruhan, ini memberi tahu kami tepat saat kami harus mengirim payload kami untuk memastikan respons kami di-cache. Kami memiliki input tanpa kunci - header X-Host - yang digunakan untuk menghasilkan impor skrip. Kami dapat menggunakan daftar agen pengguna populer untuk memastikan sebagian besar pengunjung menerima exploit kami, tetapi perilaku ini telah memberi kami pilihan serangan yang lebih selektif. Anda tahu agen pengguna mereka, Anda berpotensi menyesuaikan serangan untuk menargetkan orang tertentu, atau bahkan menyembunyikan diri dari tim pemantauan situs web. Ini berarti bahwa karena kami telah mengklaim menggunakan Firefox 60, exploit kami hanya akan disajikan untuk pengguna Firefox 60 lainnya. Namun, header Bervariasi memberi tahu kami bahwa Agen-Pengguna kami mungkin menjadi bagian dari kunci cache, dan pengujian manual mengonfirmasi hal ini. Ini awalnya terlihat hampir identik dengan contoh pertama. Kami sudah menguasai atribut 'data-site-root', tapi kami tidak bisa keluar untuk mendapatkan XSS dan tidak jelas untuk apa atribut ini digunakan. Untuk mengetahuinya, saya membuat kecocokan dan mengganti aturan di Burp untuk menambahkan header 'X-Forwarded-Host: id.burpcollaborator.net' ke semua permintaan, lalu meramban situs tersebut. Lintasan menyarankan bahwa di suatu tempat di situs web, ada JavaScript kode menggunakan atribut data-situs-root untuk memutuskan dari mana memuat beberapa data internasionalisasi. Saya berusaha mencari tahu seperti apa data ini seharusnya dengan mengambil https://catalog.data.gov/api/i18n/en, tetapi hanya menerima respons JSON kosong.
Firefox telah mencoba mengambil daftar 'resep' sebagai bagian dari sistem SHIELD-nya untuk memasang ekstensi secara diam-diam untuk tujuan pemasaran dan penelitian. Asal 'null' cukup langka dengan sendirinya dan saya belum pernah melihat masalah browser header Origin huruf kecil sebelumnya. Sistem ini mungkin paling dikenal karena secara paksa mendistribusikan ekstensi 'Mr Robot', menyebabkan reaksi konsumen yang cukup besar. Memilah-milah log riwayat proksi mengungkapkan bahwa pelakunya adalah Firefox itu sendiri. Firefox mengambil URL ini tak lama setelah browser dibuka dan juga secara berkala mengambilnya kembali, yang pada akhirnya berarti semua puluhan juta pengguna Firefox setiap hari dapat mengambil resep dari situs web saya. Sistem ini menggunakan NGINX untuk caching, yang secara alami senang untuk menyimpan respons saya yang beracun dan menyajikannya kepada pengguna lain. Resep yang digunakan oleh Firefox ditandatangani jadi saya tidak bisa menginstal addon berbahaya dan mendapatkan eksekusi kode lengkap, tetapi saya bisa mengarahkan puluhan juta pengguna asli ke URL pilihan saya. Juga, beberapa sistem Mozilla backend menggunakan resep yang tidak ditandatangani, yang berpotensi dapat digunakan untuk mendapatkan pijakan jauh di dalam infrastruktur mereka dan mungkin mendapatkan kunci penandatanganan resep. Selain itu, saya dapat memutar ulang resep lama pilihan saya yang berpotensi memaksa pemasangan massal ekstensi lama yang diketahui rentan, atau kembalinya Mr Robot yang tak terduga. Selain penggunaan DDoS yang jelas, ini akan menjadi sangat serius jika dikombinasikan dengan kerentanan kerusakan memori yang sesuai. Ini menawarkan beberapa kemungkinan.Goodhire.com ternyata dihosting di HubSpot, dan HubSpot memberikan prioritas header X-Forwarded-Server di atas header Host dan semakin bingung tentang klien yang menjadi tujuan permintaan ini. Meskipun input kami tercermin di halaman, itu disandikan dalam HTML sehingga serangan XSS langsung tidak bekerja di sini. Setelah publikasi posting ini, HubSpot menjangkau untuk menyatakan bahwa mereka tidak pernah menerima laporan dari Infleksi dan bahwa saya telah memiliki pengalaman yang lebih baik jika saya telah menghubungi program pengungkapan mereka sendiri secara langsung. Infleksi meneruskan laporan ini ke HubSpot, yang tampaknya mencoba dan menyelesaikan masalah dengan secara permanen mencekal alamat IP saya. Jika tidak ada yang lain, ini berfungsi untuk menyoroti bahaya pelaporan kerentanan melalui pihak ketiga. Beberapa saat kemudian, kerentanannya telah ditambal. Saya tidak dapat menemukan cara teknis untuk membuat Ghost mengeluarkan pengalihan HTTPS, dan tergoda untuk meninggalkan gangguan saya dan melaporkan penggunaan HTTP daripada HTTPS ke Ghost sebagai kerentanan dengan harapan bahwa mereka akan memperbaikinya untuk saya. Solusi pertama ditemukan oleh Sajjad Hashemian, yang melihat bahwa di Safari jika waf.party berada di cache HSTS browser, pengalihan akan otomatis ditingkatkan ke HTTPS daripada diblokir. Sam Thomas menindaklanjuti dengan solusi untuk Edge, berdasarkan pekerjaan oleh Manuel Caballero - mengeluarkan 302 redirect ke URL HTTPS sepenuhnya memotong perlindungan konten campuran Edge. Akhirnya saya memutuskan untuk melakukan crowdsource solusi dengan membuat replika masalah dan menempatkannya di hackxor dengan hadiah uang tunai terlampir.Meskipun saya menggunakan Cloudflare untuk tangkapan layar di atas, karena ini adalah masalah dalam sistem pihak ketiga saya memilih untuk melaporkannya melalui Binary karena program karunia bug mereka membayar tunai, tidak seperti Cloudflare. Secara total, terhadap pengguna Safari dan Edge saya sepenuhnya dapat kompromi setiap halaman di blog.cloudflare.com, blog.binary.com, dan setiap klien ghost.org lainnya. Terhadap pengguna Chrome / Firefox, saya hanya bisa membajak gambar. Pada titik ini dalam penelitian saya juga menemukan beberapa variasi menggunakan tajuk non-standar yang aneh seperti 'translate', 'bucket' dan 'path_info', dan curiga saya hilang. banyak lainnya. Kemajuan besar saya berikutnya datang setelah saya memperluas daftar kata tajuk dengan mengunduh dan menjelajahi 20.000 proyek PHP teratas di GitHub untuk nama-nama tajuk. Sejauh ini kita telah melihat pembajakan bahasa berbasis cookie, dan wabah serangan yang menggunakan berbagai header menimpa host. Saya pertama kali melihat mereka mempengaruhi target menjalankan Drupal, dan menggali melalui kode Drupal mengungkapkan bahwa dukungan untuk header ini berasal dari kerangka kerja PHP populer Symfony, yang pada gilirannya mengambil kode dari Zend. Hasil akhirnya adalah sejumlah besar aplikasi PHP tanpa disadari mendukung tajuk ini. Ini mengungkapkan header X-Original-URL dan X-Rewrite-URL yang mengesampingkan jalur permintaan. Untungnya, jika situs menggunakan cache eksternal kita dapat menggunakan cache internal untuk meracuni cache eksternal, dan dalam proses konversi setiap respons menjadi pengalihan. Situs Drupal lain kurang mewajibkan, dan tidak mengimpor sumber daya penting melalui pengalihan. Ini adalah serangan dua tahap.Satu triager, yang menilai kiriman saya menggunakan CVSS, memberikan laporan keracunan cache CloudFront kompleksitas akses 'tinggi' karena penyerang mungkin perlu menyewa beberapa VPS untuk meracuni semua cache CloudFront. Menolak godaan untuk berdebat tentang apa yang merupakan kompleksitas 'tinggi', saya menganggap ini sebagai kesempatan untuk mengeksplorasi apakah serangan lintas-wilayah dimungkinkan tanpa mengandalkan VPS. Ternyata CloudFront memiliki peta cache yang membantu, dan alamat IP mereka. dapat dengan mudah diidentifikasi menggunakan layanan online gratis yang mengeluarkan pencarian DNS dari berbagai lokasi geografis. Meracuni wilayah tertentu dari kenyamanan kamar tidur Anda semudah merutekan serangan Anda ke salah satu IP ini menggunakan fitur override nama host curl / Burp. Ini jelas merupakan saran yang tidak realistis bagi sebagian orang, tetapi saya menduga beberapa situs web mulai menggunakan layanan seperti Cloudflare untuk perlindungan DDoS atau SSL mudah, dan akhirnya rentan terhadap keracunan cache hanya karena caching diaktifkan secara default. Pertahanan paling kuat terhadap keracunan cache adalah dengan menonaktifkan caching. Selain itu, menghindari mengambil input dari header dan cookie adalah cara yang efektif untuk mencegah keracunan cache, tetapi sulit untuk mengetahui apakah lapisan dan kerangka kerja lainnya menyelinap mendukung header tambahan. Karena itu saya sarankan untuk mengaudit setiap halaman aplikasi Anda dengan Param Miner untuk membuang input yang tidak dikunci.Beberapa cache memungkinkan Anda menggunakan header Vary untuk memasukkan input yang tidak dikunci, dan yang lainnya membiarkan Anda mendefinisikan kunci cache kustom tetapi dapat membatasi fitur ini untuk pelanggan 'perusahaan'. Gagal itu, Anda bisa menghapus input pada lapisan cache, atau menambahkannya ke kunci cache. Setelah Anda mengidentifikasi input yang tidak dikunci dalam aplikasi Anda, solusi yang ideal adalah menonaktifkannya secara langsung. Kami telah melihat bahwa bahkan kerangka kerja yang terkenal dapat menyembunyikan fitur yang ada di mana-mana, mengkonfirmasikan bahwa tidak pernah aman untuk menganggap bahwa orang lain telah membaca kode sumber hanya karena ini open-source dan memiliki jutaan pengguna. Saya pikir ini adalah bagian dari tren yang lebih besar di mana ketika situs web menjadi semakin bersarang di dalam sistem pembantu, postur keamanan mereka semakin sulit untuk dinilai secara memadai secara terpisah. Keracunan cache web jauh dari kerentanan teoretis, dan aplikasi yang membengkak serta tumpukan server yang menjulang bersekongkol untuk membawanya ke massa. Kami juga telah melihat bagaimana menempatkan cache di depan situs web dapat mengambilnya dari sepenuhnya aman hingga rentan. (source)