Apa yang kita butuhkan. Menemukan kata-kata dengan operator tambahan

Registrasi kontrol dilakukan oleh arahan @Register, yang memungkinkan Anda untuk menggunakan kontrol pengguna dan kontrol server dalam kode HTML halaman menggunakan sintaks khusus (sintaks kontrol server kustom deklaratif). Berdasarkan analisis arahan ini, pengurai halaman dapat mengaitkan tag dengan jenis tertentu dan, saat membuat halaman, menyematkan kontrol sebagai penampung tipe khusus - cabang dari pohon kontrol halaman.

Arahan harus mendahului penggunaan pertama dari tag yang dideklarasikan, lebih sering ditempatkan di awal halaman dan dalam hal mendaftarkan beberapa kontrol, di situs dengan struktur modular, jumlah deklarasi tersebut dapat menempati banyak baris . Saat Anda mengubah lokasi kontrol, Anda harus mencari baris yang memerlukan perubahan dalam kode semua halaman dan kontrol pengguna tempat mereka terdaftar, yang agak merepotkan.

Artikel ini menjelaskan metode yang menyederhanakan pendaftaran kontrol.

Untuk arahan pendaftaran, kami akan menggunakan file teks biasa di mana kami akan mengumpulkan semua arahan @ Register. Karena jalur virtual dapat digunakan untuk mendeklarasikan kontrol pengguna, dan hanya ruang nama yang ditentukan untuk kontrol server, kami dapat mengumpulkan semua tautan yang kami butuhkan dalam file ini, dan tautan ke file ascx akan benar untuk folder mana pun dalam proyek. Inilah tampilan file ini di salah satu proyek:


<%@ Register TagPrefix="ch" Namespace="ControlsSharp.HtmlControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="cw" Namespace="ControlsSharp.WebControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="c" Namespace="ControlsSharp.CustomControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="b" Namespace="ControlsBasic.CustomControls" Assembly="ControlsBasic"%>

<%@ Register TagPrefix="cu" TagName="bottommenu" Src="~/UserControls/Menu/cu_menu_bottom.ascx" %>

<%@ Register TagPrefix="cu" TagName="leftmenu" Src="~/UserControls/Menu/cu_menu_left.ascx" %>

<%@ Register TagPrefix="cu" TagName="topmenu" Src="~/UserControls/Menu/cu_menu_top.ascx" %>

Beri nama file register.inc dan letakkan di folder /inc proyek web kita.

File ini akan berisi semua link yang kita butuhkan, kita akan menambah atau mengubah pendaftaran pengguna atau kontrol server di dalamnya.

Sekarang file yang dibuat perlu dimasukkan ke dalam kode halaman. Kami melakukan ini dengan SSI (server side include) #include directive. Arahan ini memungkinkan Anda untuk memasukkan file statis dan dinamis dalam kode halaman, memprosesnya berdasarkan pemetaan IIS, mis. menentukan file asp atau aspx sebagai sumber akan menyebabkan file diproses oleh proses yang sesuai dan menyalin hasil pemrosesan ini ke halaman output. Di ASP, arahan #include sangat banyak digunakan dan memungkinkan untuk modularisasi situs. Dengan munculnya ASP.NET, menjadi lebih mudah untuk melakukan ini dengan cara lain, misalnya, menggunakan kontrol pengguna. Versi ASP.NET mendatang akan menerapkan modularitas menggunakan halaman master. Secara umum, #include directive kehilangan artinya dan disimpan terutama untuk kompatibilitas mundur dan untuk menyederhanakan migrasi proyek ASP ke .Net.

Karena kami memiliki file teks sederhana, tidak ada pemrosesan yang akan dilakukan, dan sebelum konten dinamis dijalankan, seluruh konten file akan disalin ke kode halaman. Itu. menambahkan file register.inc kita ke bagian atas halaman, misalnya, hampir sama dengan menulis semua directive @Register di sana.

Agar tidak bergantung pada lokasi fisik file, kita kembali menggunakan sintaks jalur virtual dan menambahkan baris berikut ke kode file aspx:

Pastikan semuanya berfungsi, jika tidak, perbaiki jalur yang salah.

Masih melakukan satu operasi lagi. Sekarang, jika Anda mencoba untuk mendapatkan file /inc/register.inc dari tautan di browser Anda, Anda dapat dengan mudah melakukannya. IIS meletakkannya di tangan Anda, serta di tangan penyerang, sepenuhnya gratis, meskipun berisi jalur struktur fisik situs Anda.

Untuk mencegah hal ini terjadi, kami menggunakan kemampuan penangan HttpForbiddenHandler sinkron, yang memungkinkan kami untuk melindungi file jenis tertentu agar tidak dikeluarkan atas permintaan pengguna. Pendekatan ini nyaman dan sering digunakan, misalnya, untuk melindungi file database MS Access yang digunakan dalam suatu proyek. Agar file dengan ekstensi *.inc dilindungi menggunakan handler ini, Anda perlu memberi tahu IIS bahwa file ini akan diproses oleh proses ASP.NET, dengan kata lain, konfigurasikan IIS untuk dipetakan ke file jenis ini.

Untuk penjelasan rinci tentang proses konfigurasi untuk IIS, lihat CARA: Menggunakan ASP.NET untuk Melindungi Jenis File (http://support.microsoft.com/kb/815152/EN-US/). Kita perlu membuat pemetaan hanya untuk file *.inc. Setelah menyelesaikan langkah-langkah yang dijelaskan di sana, semua permintaan file dengan ekstensi ini akan diproses oleh proses ASP.NET, dan Anda harus mengedit file web.config sebagai berikut:

Itu saja, sekarang ketika mencoba mendapatkan file /inc/register.inc melalui tautan langsung, pengguna akan menerima kesalahan B.

Agar tidak mendaftar aspnet_isapi.dll, misalnya, penyedia Anda tidak ingin melakukan ini, Anda dapat menggunakan kemampuan SSI untuk menentukan file jenis apa pun dan curang dengan menggunakan ekstensi salah satu jenis yang sudah dipetakan di IIS secara default untuk file dengan arahan @Register. *.cs atau *.vb ekstensi akan nyaman untuk ini. File-file ini berisi kode sumber dan biasanya tidak disalin ke server. Jika Anda tiba-tiba membuat kesalahan dan menyalin, Anda tidak akan bisa mendapatkannya atas permintaan dari browser - ketika Anda mencoba melakukan ini, pengguna akan menerima kesalahan B. Ini terjadi karena pemetaan di IIS dikonfigurasi secara default untuk file jenis ini dan ekstensi yang sesuai sudah terdaftar di bagian file mesin.config. Di Visual Studio, agar kompiler tidak memberi Anda pesan kesalahan, letakkan ekstensi yang tidak diminati oleh kompiler: dalam proyek C# adalah *.vb, dalam proyek VB adalah *.cs.
Kesimpulan

Metode yang dijelaskan memungkinkan Anda untuk mendaftarkan kontrol di satu tempat untuk keseluruhan proyek. Modifikasi selanjutnya dari file ini membutuhkan sedikit usaha daripada jika Anda harus melakukannya dengan cara biasa. Coba gunakan SSI #include di dalam file yang Anda masukkan - ini memungkinkan Anda untuk mengatur semacam hierarki dan pewarisan, yang dapat memudahkan proyek besar

Mesin pencari Google (www.google.com) menyediakan banyak pilihan pencarian. Semua fitur ini adalah alat pencarian yang sangat berharga untuk pengguna Internet pertama kali dan pada saat yang sama senjata invasi dan penghancuran yang lebih kuat di tangan orang-orang dengan niat jahat, termasuk tidak hanya peretas, tetapi juga penjahat non-komputer dan bahkan teroris.
(9475 tampilan dalam 1 minggu)

Denis Batrankov
denisNOSPAMixi.ru

Perhatian:Artikel ini bukan panduan untuk bertindak. Artikel ini ditulis untuk Anda, administrator server WEB, sehingga Anda akan kehilangan perasaan palsu bahwa Anda aman, dan Anda akhirnya akan memahami bahaya metode memperoleh informasi ini dan mengatur tentang melindungi situs Anda.

pengantar

Misalnya, saya menemukan 1670 halaman dalam 0,14 detik!

2. Mari kita masukkan baris lain, misalnya:

inurl:"auth_user_file.txt"

sedikit kurang, tetapi ini sudah cukup untuk unduhan gratis dan untuk menebak kata sandi (menggunakan John The Ripper yang sama). Di bawah ini saya akan memberikan beberapa contoh lagi.

Jadi, Anda perlu menyadari bahwa mesin pencari Google telah mengunjungi sebagian besar situs Internet dan menyimpan informasi yang terkandung di dalamnya. Informasi cache ini memungkinkan Anda untuk mendapatkan informasi tentang situs dan konten situs tanpa koneksi langsung ke situs, hanya menggali informasi yang disimpan secara internal oleh Google. Selain itu, jika informasi di situs tidak lagi tersedia, informasi dalam cache mungkin masih disimpan. Yang diperlukan untuk metode ini adalah mengetahui beberapa kata kunci Google. Teknik ini disebut Google Hacking.

Untuk pertama kalinya, informasi tentang Google Hacking muncul di milis Bugtruck 3 tahun yang lalu. Pada tahun 2001, topik ini diangkat oleh seorang mahasiswa Prancis. Berikut ini tautan ke surat ini http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html . Ini memberikan contoh pertama dari permintaan tersebut:

1) Indeks /admin
2) Indeks / kata sandi
3) Indeks /mail
4) Indeks / +banques +filetype:xls (untuk perancis...)
5) Indeks / +passwd
6) Indeks/kata sandi.txt

Topik ini membuat banyak keributan di bagian membaca bahasa Inggris di Internet baru-baru ini: setelah sebuah artikel oleh Johnny Long diterbitkan pada 7 Mei 2004. Untuk studi yang lebih lengkap tentang Google Hacking, saya menyarankan Anda untuk pergi ke situs penulis ini http://johnny.ihackstuff.com. Pada artikel ini, saya hanya ingin membawa Anda up to date.

Siapa yang dapat menggunakannya:
- Jurnalis, mata-mata, dan semua orang yang suka mencampuri urusan orang lain dapat menggunakan ini untuk mencari bukti kompromi.
- Peretas mencari target yang cocok untuk diretas.

Cara kerja Google.

Untuk melanjutkan percakapan, izinkan saya mengingatkan Anda tentang beberapa kata kunci yang digunakan dalam kueri Google.

Cari menggunakan tanda +

Google mengecualikan kata-kata yang tidak penting, menurut pendapatnya, dari pencarian. Misalnya, kata tanya, kata depan, dan artikel dalam bahasa Inggris: misalnya are, of, where. Dalam bahasa Rusia, Google tampaknya menganggap semua kata penting. Jika kata tersebut dikecualikan dari pencarian, maka Google menulis tentang itu. Agar Google mulai mencari halaman dengan kata-kata ini, Anda perlu menambahkan tanda + di depannya tanpa spasi sebelum kata tersebut. Sebagai contoh:

as + dari basis

Cari berdasarkan tanda -

Jika Google menemukan banyak halaman dari mana Anda ingin mengecualikan halaman dengan topik tertentu, maka Anda dapat memaksa Google untuk hanya mencari halaman yang tidak mengandung kata-kata tertentu. Untuk melakukan ini, Anda perlu menunjukkan kata-kata ini dengan meletakkan tanda di depan masing-masing - tanpa spasi sebelum kata tersebut. Sebagai contoh:

memancing - vodka

Cari dengan tanda ~

Anda mungkin ingin mencari tidak hanya kata yang ditentukan, tetapi juga sinonimnya. Untuk melakukan ini, awali kata dengan simbol ~.

Menemukan frasa yang tepat menggunakan tanda kutip ganda

Google mencari di setiap halaman untuk semua kemunculan kata-kata yang Anda tulis dalam string kueri, dan tidak peduli dengan posisi relatif kata-kata, yang utama adalah bahwa semua kata yang ditentukan ada di halaman pada saat yang sama ( ini adalah tindakan default). Untuk menemukan frasa yang tepat, Anda harus memasukkannya ke dalam tanda kutip. Sebagai contoh:

"penyimpanan buku"

Untuk memiliki setidaknya satu dari kata-kata yang ditentukan, Anda harus menentukan operasi logika secara eksplisit: ATAU. Sebagai contoh:

keamanan buku ATAU perlindungan

Selain itu, Anda dapat menggunakan tanda * dalam string pencarian untuk menunjukkan kata apa saja dan. untuk mewakili karakter apa pun.

Menemukan kata-kata dengan operator tambahan

Ada operator pencarian yang ditentukan dalam string pencarian dalam format:

operator: istilah_penelusuran

Spasi di sebelah titik dua tidak diperlukan. Jika Anda memasukkan spasi setelah titik dua, Anda akan melihat pesan kesalahan, dan sebelum itu, Google akan menggunakannya sebagai string pencarian normal.
Ada grup operator pencarian tambahan: bahasa - tunjukkan dalam bahasa apa Anda ingin melihat hasilnya, tanggal - batasi hasil selama tiga, enam atau 12 bulan terakhir, kemunculan - tunjukkan di mana dalam dokumen yang perlu Anda cari string: di mana-mana, dalam judul, di URL, domain - cari situs yang ditentukan atau sebaliknya kecualikan dari pencarian, pencarian aman - blokir situs yang berisi jenis informasi tertentu dan hapus dari halaman hasil pencarian.
Namun, beberapa operator tidak memerlukan parameter tambahan, misalnya, kueri " cache: www.google.com" dapat disebut sebagai string pencarian lengkap, dan beberapa kata kunci, sebaliknya, memerlukan kata pencarian, misalnya " situs: www.google.com bantuan". Mengingat topik kita, mari kita lihat operator berikut:

Operator

Keterangan

Membutuhkan parameter tambahan?

cari hanya untuk situs yang ditentukan dalam search_term

cari hanya di dokumen dengan tipe search_term

temukan halaman yang berisi search_term dalam judul

temukan halaman yang berisi semua kata search_term dalam judul

temukan halaman yang berisi kata search_term di alamatnya

temukan halaman yang berisi semua kata search_term di alamatnya

Operator lokasi: membatasi pencarian hanya di situs yang ditentukan, dan Anda tidak hanya dapat menentukan nama domain, tetapi juga alamat IP. Misalnya, masukkan:

Operator jenis file: membatasi pencarian ke file dari jenis tertentu. Sebagai contoh:

Pada tanggal artikel ini, Google dapat mencari dalam 13 format file yang berbeda:

  • Format Dokumen Portabel Adobe (pdf)
  • Adobe PostScript (ps)
  • Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)
  • Lotus Word Pro (lwp)
  • MacTulis(mw)
  • Microsoft Excel (xls)
  • Microsoft PowerPoint (ppt)
  • Microsoft Word (dok)
  • Microsoft Works (wks, wps, wdb)
  • Microsoft Write (tulis)
  • Format Teks Kaya (rtf)
  • Kilat Gelombang Kejut (swf)
  • Teks (jawaban, txt)

Operator tautan: menunjukkan semua halaman yang mengarah ke halaman tertentu.
Pasti selalu menarik untuk melihat berapa banyak tempat di Internet yang tahu tentang Anda. Kita coba:

Operator cache: menunjukkan versi situs yang di-cache Google seperti yang terlihat saat Google terakhir mengunjungi halaman tersebut. Kami mengambil situs yang sering berubah dan melihat:

Operator judul: mencari kata tertentu dalam judul halaman. Operator semua judul: adalah ekstensi - ini mencari semua beberapa kata yang ditentukan dalam judul halaman. Membandingkan:

judul:penerbangan ke mars
intitle:judul penerbangan:pada intitle:mars
allintitle:penerbangan ke mars

Operator inurl: menyebabkan Google menampilkan semua halaman yang berisi string yang ditentukan dalam URL. allinurl: mencari semua kata dalam URL. Sebagai contoh:

allinurl:acid_stat_alerts.php

Perintah ini sangat berguna bagi mereka yang tidak memiliki SNORT - setidaknya mereka dapat melihat cara kerjanya pada sistem nyata.

Metode Peretasan Google

Jadi, kami menemukan bahwa, dengan menggunakan kombinasi operator dan kata kunci di atas, siapa pun dapat mengumpulkan informasi yang diperlukan dan mencari kerentanan. Teknik ini sering disebut sebagai Google Hacking.

peta situs `

Anda dapat menggunakan pernyataan situs: untuk melihat semua tautan yang ditemukan Google di situs tersebut. Biasanya halaman yang dibuat secara dinamis oleh skrip tidak diindeks menggunakan parameter, sehingga beberapa situs menggunakan filter ISAPI sehingga tautan tidak berbentuk /artikel.asp?num=10&dst=5, tapi dengan garis miring /artikel/abc/angka/10/dst/5. Hal ini dilakukan untuk memastikan bahwa situs tersebut secara umum terindeks oleh mesin pencari.

Mari mencoba:

situs: www.whitehouse.gov whitehouse

Google berpikir bahwa setiap halaman di situs mengandung kata whitehouse. Inilah yang kami gunakan untuk mendapatkan semua halaman.
Ada juga versi yang disederhanakan:

situs: whitehouse.gov

Dan bagian terbaiknya adalah rekan-rekan dari whitehouse.gov bahkan tidak tahu bahwa kami melihat struktur situs mereka dan bahkan melihat halaman cache yang diunduh Google untuk dirinya sendiri. Ini dapat digunakan untuk mempelajari struktur situs dan melihat konten tanpa diketahui untuk saat ini.

Mencantumkan file dalam direktori

Server WEB dapat menampilkan daftar direktori server alih-alih halaman HTML biasa. Ini biasanya dilakukan untuk memaksa pengguna memilih dan mengunduh file tertentu. Namun, dalam banyak kasus, administrator tidak berniat menampilkan isi direktori. Ini karena kesalahan konfigurasi server atau tidak adanya halaman master di direktori. Akibatnya, peretas memiliki kesempatan untuk menemukan sesuatu yang menarik di direktori dan menggunakannya untuk keperluannya sendiri. Untuk menemukan semua halaman seperti itu, cukup perhatikan bahwa semuanya berisi kata-kata: indeks dari dalam judulnya. Tetapi karena indeks kata tidak hanya berisi halaman seperti itu, kita perlu menyaring kueri dan memperhitungkan kata kunci pada halaman itu sendiri, jadi kueri seperti:

intitle:index.of direktori induk
intitle:index.of ukuran nama

Karena sebagian besar daftar direktori disengaja, Anda mungkin kesulitan menemukan daftar yang salah tempat untuk pertama kalinya. Tetapi setidaknya Anda akan dapat menggunakan daftar untuk menentukan versi server WEB, seperti yang dijelaskan di bawah ini.

Mendapatkan versi server WEB.

Mengetahui versi server WEB selalu membantu sebelum memulai serangan peretas. Sekali lagi terima kasih kepada Google, informasi ini dapat diperoleh tanpa terhubung ke server. Jika Anda hati-hati melihat daftar direktori, Anda dapat melihat bahwa nama server WEB dan versinya ditampilkan di sana.

Apache1.3.29 - Server ProXad di trf296.free.fr Port 80

Administrator berpengalaman dapat mengubah informasi ini, tetapi, sebagai aturan, itu benar. Jadi, untuk mendapatkan informasi ini, cukup dengan mengirim permintaan:

intitle:index.of server.at

Untuk mendapatkan informasi untuk server tertentu, kami menyaring permintaan:

intitle:index.of server.di situs:ibm.com

Atau sebaliknya, kami mencari server yang berjalan pada versi server tertentu:

intitle:index.of Apache/2.0.40 Server di

Teknik ini bisa digunakan oleh seorang hacker untuk mencari korban. Jika, misalnya, ia memiliki exploit untuk versi server WEB tertentu, maka ia dapat menemukannya dan mencoba exploit yang ada.

Anda juga bisa mendapatkan versi server dengan melihat halaman yang diinstal secara default saat menginstal versi baru server WEB. Misalnya, untuk melihat halaman pengujian Apache 1.2.6, cukup ketik

intitle:Test.Page.for.Apache it.worked!

Selain itu, beberapa sistem operasi segera menginstal dan meluncurkan server WEB selama instalasi. Namun, beberapa pengguna bahkan tidak menyadarinya. Secara alami, jika Anda melihat bahwa seseorang belum menghapus halaman default, maka masuk akal untuk mengasumsikan bahwa komputer tidak mengalami konfigurasi apa pun dan mungkin rentan terhadap serangan.

Coba cari halaman IIS 5.0

allintitle:Selamat datang di Layanan Internet Windows 2000

Dalam kasus IIS, Anda tidak hanya dapat menentukan versi server, tetapi juga versi Windows dan Paket Layanan.

Cara lain untuk menentukan versi server WEB adalah dengan mencari manual (halaman bantuan) dan contoh yang dapat diinstal di situs secara default. Peretas telah menemukan beberapa cara untuk menggunakan komponen ini untuk mendapatkan akses istimewa ke situs. Itulah mengapa Anda perlu menghapus komponen ini di lokasi produksi. Belum lagi fakta bahwa dengan adanya komponen-komponen ini Anda bisa mendapatkan informasi tentang jenis server dan versinya. Sebagai contoh, mari kita cari manual Apache:

inurl: modul arahan Apache manual

Menggunakan Google sebagai pemindai CGI.

Pemindai CGI atau pemindai WEB adalah utilitas untuk mencari skrip dan program yang rentan di server korban. Utilitas ini perlu mengetahui apa yang harus dicari, untuk ini mereka memiliki daftar lengkap file yang rentan, misalnya:

/cgi-bin/cgiemail/uargg.txt
/random_banner/index.cgi
/random_banner/index.cgi
/cgi-bin/mailview.cgi
/cgi-bin/maillist.cgi
/cgi-bin/userreg.cgi

/iissamples/ISSamples/SQLQHit.asp
/Server Situs/admin/findvserver.asp
/scripts/cphost.dll
/cgi-bin/finger.cgi

Kita dapat menemukan setiap file ini menggunakan Google, selain itu menggunakan indeks kata atau inurl dengan nama file di bilah pencarian: kita dapat menemukan situs dengan skrip yang rentan, misalnya:

allinurl:/random_banner/index.cgi

Dengan pengetahuan tambahan, peretas dapat mengeksploitasi kerentanan skrip dan menggunakan kerentanan untuk memaksa skrip menyajikan file apa pun yang disimpan di server. Misalnya file kata sandi.

Bagaimana melindungi diri Anda dari peretasan melalui Google.

1. Jangan mengupload data penting ke server WEB.

Bahkan jika Anda memposting data untuk sementara, Anda dapat melupakannya atau seseorang akan punya waktu untuk menemukan dan mengambil data ini sebelum Anda menghapusnya. Jangan lakukan itu. Ada banyak cara lain untuk mentransfer data yang melindunginya dari pencurian.

2. Periksa situs Anda.

Gunakan metode yang dijelaskan untuk meneliti situs Anda. Periksa situs Anda secara berkala untuk metode baru yang muncul di situs http://johnny.ihackstuff.com. Ingatlah bahwa jika Anda ingin mengotomatiskan tindakan Anda, Anda perlu mendapatkan izin khusus dari Google. Jika Anda hati-hati membaca http://www.google.com/terms_of_service.html, maka Anda akan melihat frasa: Anda tidak boleh mengirim kueri otomatis dalam bentuk apa pun ke sistem Google tanpa izin tertulis sebelumnya dari Google.

3. Anda mungkin tidak memerlukan Google untuk mengindeks situs Anda atau sebagian darinya.

Google mengizinkan Anda untuk menghapus tautan ke situs Anda atau sebagian dari basis datanya, serta menghapus halaman dari cache. Selain itu, Anda dapat melarang pencarian gambar di situs Anda, melarang tampilan fragmen pendek halaman dalam hasil pencarian Semua opsi untuk menghapus situs dijelaskan di halaman http://www.google.com/remove.html. Untuk melakukan ini, Anda harus mengonfirmasi bahwa Anda benar-benar pemilik situs ini atau menyisipkan tag di halaman atau

4. Gunakan robots.txt

Diketahui bahwa mesin pencari melihat file robots.txt di root situs dan tidak mengindeks bagian-bagian yang ditandai dengan kata Melarang. Anda dapat menggunakan ini untuk mencegah bagian dari situs agar tidak diindeks. Misalnya, untuk menghindari pengindeksan seluruh situs, buat file robots.txt yang berisi dua baris:

Agen pengguna: *
larang: /

Apa lagi yang terjadi?

Agar hidup tidak tampak seperti madu bagi Anda, saya akan mengatakan pada akhirnya bahwa ada situs yang mengikuti orang-orang yang, menggunakan metode di atas, mencari lubang di skrip dan server WEB. Contoh halaman seperti itu adalah

Lampiran.

Sedikit manis. Cobalah salah satu dari yang berikut ini untuk Anda sendiri:

1. #mysql dump filetype:sql - cari dump database mySQL
2. Laporan Ringkasan Kerentanan Host - akan menunjukkan kepada Anda kerentanan apa yang ditemukan orang lain
3. phpMyAdmin berjalan di inurl:main.php - ini akan memaksa menutup kontrol melalui panel phpmyadmin
4. Tidak untuk dirahasiakan
5. Detail Permintaan Kontrol Variabel Server Pohon
6. Berjalan dalam mode anak
7. Laporan ini dibuat oleh WebLog
8. intitle:index.of cgiirc.config
9. filetype:conf inurl:firewall -intitle:cvs - mungkin ada yang membutuhkan file konfigurasi firewall? :)
10. intitle:index.of finances.xls - hmm....
11. intitle:Indeks obrolan dbconvert.exe - log obrolan icq
12. intext:Analisis lalu lintas Tobias Oetiker
13. intitle:Statistik Penggunaan untuk Dihasilkan oleh Webalizer
14. intitle:statistik statistik web tingkat lanjut
15. intitle:index.of ws_ftp.ini - ws ftp config
16. inurl:ipsec.secrets menyimpan rahasia bersama - kunci rahasia - penemuan bagus
17. inurl:main.php Selamat datang di phpMyAdmin
18. inurl:server-info Informasi Server Apache
19. situs: nilai admin pendidikan
20. ORA-00921: akhir tak terduga dari perintah SQL - dapatkan jalur
21. intitle:index.of trillian.ini
22. intitle:Indeks pwd.db
23. intitle:index.of people.lst
24. intitle:index.of master.passwd
25.inurl:passlist.txt
26. intitle:Indeks .mysql_history
27. intitle:indeks intext:globals.inc
28. intitle:index.of administrators.pwd
29. intitle:Index.of etc shadow
30. intitle:index.of secring.pgp
31. inurl:config.php dbuname dbpass
32. inurl:perform filetype:ini

  • "Peretasan mit Google"
  • Pusat pelatihan "Informzaschita" http://www.itsecurity.ru - pusat khusus terkemuka di bidang pelatihan keamanan informasi (Lisensi Komite Pendidikan Moskow No. 015470, Akreditasi Negara No. 004251). Satu-satunya pusat pelatihan resmi Sistem Keamanan Internet dan Clearswift di Rusia dan negara-negara CIS. Pusat pelatihan resmi Microsoft (spesialisasi keamanan). Program pelatihan dikoordinasikan dengan Komisi Teknis Negara Rusia, FSB (FAPSI). Sertifikat pelatihan dan dokumen negara tentang pelatihan lanjutan.

    SoftKey adalah layanan unik untuk pembeli, pengembang, dealer, dan mitra afiliasi. Selain itu, ini adalah salah satu toko perangkat lunak online terbaik di Rusia, Ukraina, Kazakhstan, yang menawarkan pelanggan berbagai macam, banyak metode pembayaran, pemrosesan pesanan yang cepat (seringkali instan), melacak proses pemenuhan pesanan di bagian pribadi, berbagai diskon dari toko dan produsen ON.

    Setiap pengembang ASP.NET harus terbiasa dengan Petunjuk Halaman. Jika Anda seorang pemula dan ingin belajar tentang Petunjuk Halaman maka Anda dapat membaca artikel ini.

    Jadi pertanyaan pertama adalah tentang Arahan Halaman.

    Apa itu Arahan Halaman?

    Pada dasarnya Page Directive adalah perintah. Perintah-perintah ini digunakan oleh kompiler ketika halaman dikompilasi.

    Cara menggunakan arahan di halaman ASP.NET

    Tidak sulit untuk menambahkan arahan ke halaman ASP.NET. Sangat mudah untuk menambahkan arahan ke halaman ASP.NET. Anda dapat menulis arahan dalam format berikut:

    <%@%>

    Lihat format direktif, dimulai dengan "<%@" and ends with "%>". Cara terbaik adalah meletakkan direktif di bagian atas halaman Anda. Tapi Anda bisa meletakkan direktif di mana saja di halaman. Satu hal lagi, Anda bisa meletakkan lebih dari satu atribut dalam satu direktif.

    Berikut adalah daftar lengkap arahan:

    • @Halaman
    • @Menguasai
    • @Kontrol
    • @Impor
    • @Menerapkan
    • @Daftar
    • @Perakitan
    • @MasterType
    • @Cache Keluaran
    • @Jenis Halaman Sebelumnya
    • @Referensi

    Mari kita bahas sesuatu tentang setiap arahan.

    Saat Anda ingin menentukan atribut untuk halaman ASP.NET maka Anda perlu menggunakan @Page Directive. Seperti yang Anda ketahui, halaman ASP.NET adalah bagian yang sangat penting dari ASP.NET, jadi direktif ini biasanya digunakan di ASP.NET.

    <%@Page Language="C#" AutoEventWIreup="false" CodeFile="Default.aspx.cs" Inherits="_Default"%>

    Sekarang Anda memiliki beberapa informasi tentang @Page Directive. @Master Directive sangat mirip dengan @Page Directive. Satu-satunya perbedaan adalah bahwa arahan @master adalah untuk halaman Master. Perlu diperhatikan bahwa, saat menggunakan @Master Directive, Anda menentukan properti halaman template. Kemudian halaman konten apa pun dapat mewarisi semua properti yang ditentukan di Halaman Master. Tetapi ada beberapa properti yang hanya tersedia di Halaman Master.

    <%@Master Language="C#" AutoEventWIreup="false" CodeFile="MasterPage1.master.cs" Inherits="MasterPage"%>

    @Kontrol

    @Control membangun kontrol pengguna ASP.NET. Saat Anda menggunakan arahan, Anda menentukan properti yang akan diwarisi oleh kontrol pengguna dan nilai tesis ditetapkan ke kontrol pengguna

    <%@Control Language="C#" Explicit="True" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

    Seperti yang Anda ketahui, Anda perlu mendefinisikan ruang nama di kelas .cs Anda sebelum menggunakan kelas C# atau VB. Jadi @Import Directive mengimpor ruang nama. Arahan ini hanya mendukung satu atribut "namespace" dan atribut ini mengambil nilai string yang menentukan namespace yang akan diimpor. Satu hal yang perlu Anda perhatikan adalah bahwa @Import Directive tidak boleh berisi lebih dari satu pasangan atribut/nilai. Tetapi Anda dapat menggunakan beberapa baris.

    <%@Import Namespace="System.Data"%>

    @Menerapkan

    Arahan @Implements mendapatkan halaman ASP.NET untuk mengimplementasikan antarmuka kerangka kerja .Net. Arahan ini hanya mendukung antarmuka atribut tunggal.

    <%@Implements Interface="System.Web.UI.IValidator"%>

    @Daftar

    Saat Anda membuat kontrol pengguna dan Anda menyeret kontrol pengguna itu ke halaman Anda, maka Anda akan melihat arahan @Register. Arahan ini mendaftarkan kontrol pengguna Anda pada halaman sehingga kontrol dapat diakses oleh halaman.

    <%@ Register TagPrefix="MayTag Namespace="MyName.MyNameSpace" Assembly="MyAssembly"%>

    @Perakitan

    @Assembly Directive melampirkan rakitan ke halaman atau kontrol pengguna ASP.NET sehingga semua kelas rakitan dan antarmuka tersedia untuk kelas. Arahan ini mendukung dua atribut Name dan src. Atribut Name mendefinisikan nama assembly dan atribut src mendefinisikan sumber dari assembly.

    <%@Assembly Name="MyAssembly"%>
    <%@Assembly src="MYAssembly.cs">

    @MasterType

    @MasterType Directive menghubungkan nama kelas ke halaman ASP.NET untuk mendapatkan referensi yang diketik dengan kuat atau anggota yang terkandung dalam Halaman Master yang ditentukan. Arahan ini mendukung dua atribut Typename dan virtualpath. Typename menetapkan nama kelas turunan dari mana untuk mendapatkan anggota yang diketik atau referensi dengan kuat dan virtualpath mengatur lokasi halaman dari mana ini diambil.

    <%@MasterType VirtualPath="/MasterPage1.master"%>

    @cache keluaran

    Ini mengontrol kebijakan caching output dari halaman ASP.NET.

    <%@ OutputCache Duration ="180" VaryByParam="None"%>
    @jenishalaman sebelumnya

    Arahan ini menentukan halaman dari mana setiap posting lintas halaman berasal.

    @Referensi

    Arahan ini menyatakan bahwa halaman lain atau teriakan kontrol pengguna dipatuhi bersama dengan halaman atau kontrol aktif. Arahan ini mendukung virtualpath atribut tunggal. Ini menetapkan lokasi halaman atau kontrol pengguna dari mana halaman aktif akan direferensikan.

    <%@Reference VirtualPayh="~/MyControl.ascx"%>

    Kata-kata Terakhir

    Semoga dapat ilmu dari sini. Silakan berkomentar tentang bagaimana Anda menyukai artikel ini. Komentar Anda sangat berharga bagi saya, karena hanya Anda yang akan memberi tahu saya di mana kesalahan saya dan perbaikan apa yang perlu saya lakukan untuk menulis artikel yang lebih baik. Silakan berkomentar dan berikan tanggapan Anda.

    Apa itu buku tamu?

    Tentu saja, di sini kita berbicara tentang buku tamu paling khas. Pertama-tama, ini adalah sistem yang memberi pengguna kemampuan untuk memasukkan teks, memilih penilaian situs tertentu, dan juga menentukan data mereka sendiri (nama, email, http, dll.). Ini juga merupakan sistem untuk menyajikan data yang dimasukkan oleh berbagai pengguna, dengan kemampuan untuk menavigasi, mengirim email ke penulis pesan. Variasi juga dimungkinkan dengan pengaturan yang berbeda dan dengan kontrol kosakata normatif.

    Apa yang kita butuhkan

    Tentu saja, diasumsikan bahwa pembaca terbiasa dengan dasar-dasar pemrograman ASP dan SQL (keakraban dengan bagian pertama artikel ini akan cukup untuk ini). Selain itu, kita membutuhkan Microsoft SQL Server 7.0 atau 2000, beberapa HTML atau editor teks (saya sarankan menggunakan Macromedia Dreamweaver UltraDev 4.0) dan sedikit kesabaran.

    Membuat dan menyiapkan database

    Untuk mengatur penyimpanan data yang dimasukkan oleh pengguna, Anda memerlukan satu tabel tempat Anda dapat membuat bidang untuk menyimpan nama pengguna, alamat emailnya, negara tempat tinggal, alamat situs, alamat IP, nilai peringkat pengguna situs pada skala lima poin, dll.:

    Untuk mengintegrasikan sistem dengan mudah ke situs yang ada, disarankan untuk merencanakan tabel lain untuk menyimpan warna dan pengaturan lainnya. Ini akan memungkinkan Anda untuk mengubah pengaturan yang ditentukan di masa mendatang tanpa mengubah parameter yang sesuai dalam teks sumber modul aplikasi buku tamu.

    • Jalankan Data Sources ODBC Configurator - Start->Settings->Control Panel->Administrative Tools->Data Sources ODBC.
    • Buka tab System DSN dan buat sumber data baru dengan mengklik Add…
    • Pada daftar driver yang muncul, pilih driver database - Microsoft SQL Server dan klik Next.
    • Di baris Nama Sumber Data, tentukan nama database Anda (dalam contoh yang dijelaskan, Gustbook adalah nama yang akan Anda rujuk di masa mendatang).
    • Di baris Server, tentukan server tempat koneksi akan dibuat, dan klik Berikutnya.
    • Pilih mode otentikasi Dengan SQL Server…, atur nama pengguna dan kata sandi untuk terhubung ke server SQL; tentukan protokol komunikasi server (Konfigurasi Klien - tombol TCP/IP) dan klik Berikutnya dua kali, lalu klik Selesai.
    • Anda akan melihat statistik tentang tindakan yang diambil, dan Anda dapat menggunakan tombol Uji Sumber Data untuk memeriksa sumber data.
    • Akibatnya, Anda akan melihat baris dalam daftar sumber data di sistem Anda.

    Sekarang database sudah siap, Anda dapat melanjutkan langsung ke pembuatan buku tamu.

    Integrasi sistem ke dalam situs web yang sudah jadi

    Jelas bahwa buku tamu itu sendiri tidak masuk akal. Nilailah sendiri: siapa yang membutuhkan situs yang dirancang semata-mata untuk mengumpulkan pendapat pembaca. Lagi pula, untuk mengumpulkan pendapat tentang sesuatu, Anda harus terlebih dahulu menyajikan sesuatu ini untuk penilaian mereka. Oleh karena itu, perlu memberikan perhatian khusus pada masalah yang terkait dengan penyederhanaan embedding sistem ke situs yang sudah jadi.

    Secara khusus, untuk memudahkan penyesuaian sistem untuk fitur karakteristik situs tertentu, disarankan (seperti yang disebutkan di atas) untuk membuat tabel khusus untuk menyimpan semua preferensi ini untuk memasukkan nilai tertentu khusus untuk situs Anda ke dalamnya. Keuntungan nyata dari pendekatan ini adalah bahwa untuk menanamkan sistem ke situs yang sudah selesai, Anda tidak perlu membuat perubahan pada kode sumber modul, Anda hanya perlu mengubah pengaturan di tabel database yang sesuai.

    Bayangkan contoh implementasi tabel seperti itu: .

    Seperti yang Anda lihat, ada bidang untuk menyimpan informasi tentang nama dan kata sandi untuk mengakses mode pengaturan sistem, tentang warna latar belakang utama pesan pengguna, bingkai atas dan bawah (bidang Mid_Color, Top_Color, Bot_Color, masing-masing) , tentang warna dan ukuran header formulir yang digunakan untuk memasukkan data pengguna (bidang Form_Color dan FormTitleSize, masing-masing), tentang warna, ukuran dan gaya font teks pesan itu sendiri, bidang informasi, serta halaman buku tamu itu sendiri (bidang MessageFontColor, MessageFontSize, MessageFontFace, InfoFontColor, InfoFontSize, InfoFontFace, PageFontColor, PageFontSize dan PageFontFace masing-masing), alihkan bidang untuk mengaktifkan pengiriman otomatis pemberitahuan pesan baru melalui email ke orang yang bertanggung jawab (misalnya, manajer atau administrator situs), bidang untuk menyimpan alamat email orang yang bertanggung jawab, teks pesan dengan ucapan terima kasih atas pesan yang ditinggalkan oleh pengguna, dengan daftar tidak diperbolehkan x kata-kata dan sakelar untuk mode penyaringannya (jika yang terakhir diaktifkan, maka kata-kata dalam daftar kata-kata yang tidak valid akan secara otomatis diganti dalam teks pesan dengan tanda bintang dan dengan demikian kontrol atas norma kosa kata dari teks situs akan menjadi dilaksanakan).

    Pengembangan sistem integrasi buku tamu menyiratkan organisasi antarmuka Web untuk mengatur semua parameter yang telah kami pertimbangkan (bidang tabel administrasi).

    Integrasi sistem ke situs yang sudah jadi dalam bentuk murni dapat menimbulkan beberapa kesulitan baik dalam persepsi teks sumber dan di masa depan, jika, misalnya, Anda perlu menonaktifkan sementara buku tamu di situs tertentu. Oleh karena itu, kami akan mencoba mengembangkan sistem sedemikian rupa sehingga integrasinya ke dalam situs jadi tidak sulit. Untuk melakukan ini, perlu untuk membentuk modul independen dari sistem dan memasukkannya ke dalam teks situs utama jika perlu. Jadi, misalnya, teks halaman situs web Anda mungkin terlihat seperti ini:

    ASP di atas piring perak (Bagian - 15) – Buku Tamu

    Seperti yang Anda lihat, dalam kasus pertama, arahan untuk memasukkan halaman dengan buku tamu () ditunjukkan di tempat yang tepat, dan dalam kasus kedua, halaman situs asli disajikan secara sederhana dalam bentuk tiga elemen yang disertakan secara berurutan: awal, halaman buku tamu, dan akhir. Menggunakan ini atau itu cara mengatur struktur halaman situs Anda adalah masalah selera dan bergantung pada struktur situs asli dan tingkat kerumitannya.

    Halaman utama buku tamu (Guest.asp file)

    Aplikasi yang disajikan hanya akan memiliki satu halaman, yang akan berfungsi untuk menampilkan pesan pengguna, dan untuk menavigasi dan memasukkan pesan baru. Bergantung pada nilai parameter kunci, satu atau lain tindakan akan dilakukan, dan halaman akan berada dalam satu atau lain keadaan. Pertama-tama, Anda perlu mengembangkan bagian itu, yang akan menampilkan pesan pengguna dan yang akan berisi tautan ke bagian yang berfungsi untuk menambahkan pesan baru.

    Pertama, mari kita tulis beberapa fungsi untuk bekerja dengan string:

    1. Fungsi untuk mengganti string kosong dengan spasi dan tanda kutip tunggal dengan tanda kutip ganda:<% Function ChkString(string) If string = "" then string = " " ChkString = Replace(string, """, """") End Function %>
    2. Fungsi memeriksa kosakata teks pesan untuk normativitas. Jika kata-kata cocok dengan kata-kata dari daftar kata-kata yang tidak valid, ganti dengan tanda bintang:<% Function ChkBadWords(String2) strBadWords = objRec2("BadWords") bwords = split(strBadWords, "|") For i = 0 to ubound(bwords) String2 = Replace(String2, bwords(i), string(len(bwords(i)),"*"), 1,-1,1) Next ChkBadWords = String2 end function %>
    3. Fungsi memformat teks yang dimasukkan oleh pengguna. Jika perlu (jika ada tanda yang sesuai dalam database), teks akan diperiksa (difilter) untuk normativitas:<% Function FormatStr(String) on Error resume next String = Server.HTMLEncode(String) String2 = Replace(String, CHR(13), "") String2 = Replace(String, CHR(10) & CHR(10), "

      ") String2 = Ganti(String, CHR(10), "
      ") If objRec2("BadOn") = True maka String2 = ChkBadWords(String2) End if FormatStr = String2 End Function %>

    4. Fungsi pemeriksaan lapangan:<% Function ValidateField(sFieldValue, sFieldType) Valid = True Select Case LCase(sFieldType) Case "name" If Len(sFieldValue) = 0 Then Valid = False Case "message" If Len(sFieldValue) = 0 Then Valid = False End Select ValidateField = Valid End Function %>
    5. Prosedur untuk menambahkan pesan baru (perhatikan bagaimana alamat IP komputer tempat pesan dikirim dihitung):
    <% Sub Update strSql = "insert into Messages (Name, Country, Email, URL,IP,Message,Rating) values ("" strSql = StrSql & ChkString(Request.Form("name")) & "", "" strSql = StrSql & ChkString(Request.Form("Country")) & "", "" strSql = StrSql & ChkString(Request.Form("email")) & "", "" strSql = StrSql & ChkString(Request.Form("URL")) & "", "" strSql = StrSql & Request.ServerVariables("REMOTE_ADDR") & "", "" strSql = StrSql & ChkString(Request.Form("Message")) & "", "" strSql = StrSql & ChkString(Request.Form("Rating")) & "")" objConn.Execute (StrSql) %>

    Setelah itu, parameter warna, ukuran, font desain diekstraksi dan diterapkan dari tabel yang sesuai:

    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("FormTitleSize")%>">Terima kasih atas entri Anda di buku tamu kami!

    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> Klik di sini untuk melihat entri Anda

    Sekarang, kirim email ke manajer atau administrator yang memberi tahu Anda tentang entri buku tamu baru, jika perlu:

    <% If Not(Request.Form("email"))="" AND objRec2("AutoEmail")=True then Name = Request.Form("name") Email = Request.Form("email") sFrom = objRec2("YourEmail") sTo=Email sSubject = "Спасибо, Ваша запись в нашей гостевой книге принята!" sMessage = "Дорогой(ая) " & Name & vbcrlf _ & vbcrlf _ & objRec2("ThankMessage") & vbcrlf _ & vbcrlf _ & vbcrlf Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.Send sFrom, sTo, sSubject, sMessage Set objNewMail = Nothing End If If objRec2("YouEmail")=True then Name = Request.Form("name") Home_Page = Request.Form("url") Email = Request.Form("email") Message = Request.Form("message") Country = Request.Form("Country") Address = Request.ServerVariables("REMOTE_ADDR") Rating = Request.Form("Rating") If Rating ="0" then Rating="No Rating" End If sFrom = objRec2("YourEmail") sTo= objRec2("YourEmail") sSubject = "Новое сообщение" sMessage = "Привет," & vbcrlf _ & "Новое сообщение поступило в гостевую книгу" & vbcrlf _ & vbcrlf _ & ":" & vbcrlf _ & vbcrlf _ & Message & vbcrlf _ & vbcrlf _ & "Детали сообщения:" & vbcrlf _ & "Ваше имя: " & Name & vbcrlf _ & "Email: " & Email & vbcrlf _ & "URL: " & Home_Page & vbcrlf _ & "Страна: " & Country & vbcrlf _ & "Рейтинг: " & Rating & vbcrlf _ & "Адрес: " & Address Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.Send sFrom, sTo, sSubject, sMessage Set objNewMail = Nothing End If End Sub %>

    Formulir untuk memasukkan nilai baru

    Juga disarankan untuk terlibat dalam prosedur tampilan formulir yang digunakan untuk menambahkan pesan baru (perhatikan bahwa formulir itu sendiri tertutup, yaitu modul yang berisi itu berfungsi sebagai reaksi terhadapnya):

    <% Sub ShowForm(Sign) %>

    >
    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("FormTitleSize")%>"> Tinggalkan entri di buku tamu kami

    ">* Menunjukkan bidang yang harus diingat

    colspan=2> "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> Namamu: *
    "ukuran=30> <% If dictFields(LCase("name")) Then Response.Write "Anda harus memasukkan nama
    " Respon Lain. Tulis "
    " Berakhir Jika %>
    colspan=2> "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> Surel:
    "ukuran=30>
    colspan=2> "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> URL:
    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> http:// "ukuran=30>
    colspan=2> "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> Negara:
    "ukuran=30>
    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> Bagaimana Anda menilai situs web kami?
    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%> ">Komentar Anda: *
    "warna="merah" ukuran="-2"><% If dictFields(LCase("message")) Then Response.Write "Вы не ввели сообщение
    " Respon Lain. Tulis "
    " Berakhir Jika %>
    <% End Sub %>

    Ini diikuti oleh fungsi utama untuk menampilkan sejumlah pesan pengguna yang tetap (nilai yang diambil dari tabel pengaturan administratif):

    <% Sub Show NumPerPage=INT(objRec2("NumPerPage")) If Request.QueryString("page") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If Set objRec = Server.CreateObject ("ADODB.Recordset") StrSql = "SELECT * FROM Messages ORDER BY ID DESC;" objRec.PageSize = NumPerPage objRec.CacheSize = NumPerPage objRec.Open StrSql,objConn,3,1,&H0001 iPages = objRec.PageCount TotalRows = objRec.RecordCount If iPageCurrent >iPages Kemudian iPageCurrent = iPages Jika iPageCurrent< 1 Then iPageCurrent = 1 If iPages = 0 Then Response.Write "Не найденно записей!" Else ObjRec.AbsolutePage = iPageCurrent %>

    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> Jumlah dalam buku <%=TotalRows%> entri pada <%=iPages%> halaman

    <% iRecordsShown = 0 Do While iRecordsShown < NumPerPage And Not objRec.EOF Rating = ObjRec("Rating") If IsNull(Rating) or Rating="0" then Rating = "nr" Else Rating = ObjRec("Rating") End If If IsNull(ObjRec("URL")) then Link = "Не указан URL" Else Link = "http://" & ObjRec("URL") & "" End If Email = FormatStr(ObjRec("Email")) Name = FormatStr(ObjRec("Name")) %>
    "> "warna="<%=objRec2("InfoFontColor")%>"ukuran="<%=objRec2("InfoFontSize")%>"><%=ObjRec("DateID") %> "> "warna="<%=objRec2("InfoFontColor")%>"ukuran="<%=objRec2("InfoFontSize")%>">Peringkat situs: .gif" height="14" width="65">
    "> "warna="<%=objRec2("MessageFontColor")%>"ukuran="<%=objRec2("MessageFontSize")%>"><%=FormatStr(ObjRec("Message"))%>
    "> "warna="<%=objRec2("InfoFontColor")%>"ukuran="<%=objRec2("InfoFontSize")%>"> <% If IsEmpty(Email) or Email=" " then Response.Write Name Else Response.Write "" & Nama Akhir Jika %> "> "warna="<%=objRec2("InfoFontColor")%>"ukuran="<%=objRec2("InfoFontSize")%>"><%=FormatStr(ObjRec("Country")) %> AKU P:<%= ObjRec("IP") %> "> "warna="<%=objRec2("InfoFontColor")%>"ukuran="<%=objRec2("InfoFontSize")%>"> <%=Link%>

    <% iRecordsShown = iRecordsShown + 1 objRec.MoveNext Loop if iPages >1 lalu %>

    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>"> halaman: <% For I = 1 To iPages If I = iPageCurrent Then Response.Write ""&SAYA&"" Respon Lain. Tulis " "&SAYA&"" Akhiri Jika Respon Selanjutnya. Tulis "" Else Response.Write " " End If End If objRec.Close Set objRec = Nothing End Sub %>

    Perhatikan bagaimana tautan untuk melihat halaman berikutnya dengan "porsi" pesan seperti itu dibentuk dan diimplementasikan:

    Tanggapan.Tulis" "&SAYA&" "

    Seperti yang Anda lihat, nomor halaman diteruskan ke sana sebagai nilai parameter halaman, dan selanjutnya, jika nilai ini tidak sama dengan 1, tampilan pesan tidak dimulai dari pesan pertama, tetapi dari yang akan jadilah yang pertama di akun pada halaman dengan nomor yang sesuai yang ditentukan dalam parameter:

    <% NumPerPage=INT(objRec2("NumPerPage")) If Request.QueryString("page") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If %>Teks sumber modul itu sendiri mengikuti, di mana koneksi ke database dibuat dan catatan diambil (dalam contoh yang dijelaskan, ini akan menjadi satu-satunya catatan) dari tabel pengaturan administratif Admin:<% Set objConn = Server.CreateObject ("ADODB.Connection") objConn.Open StrConn Set objRec2 = Server.CreateObject ("ADODB.Recordset") ConfigSql = "SELECT * FROM Admin;" objRec2.Open ConfigSql,objConn,0,1,&H0001 %>

    Kemudian Anda dapat mengatur gaya judul dan tag utama halaman HTML:

    ASP di atas piring perak bagian 15 - buku tamu DIY

    "warna="<%=objRec2("PageFontColor")%>"ukuran="<%=objRec2("PageFontSize")%>">

    Lihat buku tamu | Tinggalkan entri di buku tamu

    Dan akhirnya, loop utama untuk memproses halaman utama dan satu-satunya asp Anda dari modul akan terlihat seperti ini:

    <% select case Request.QueryString("mode") case "post" Dim Field Dim dictFields Set dictFields = Server.CreateObject("Scripting.Dictionary") For Each Field in Request.Form If ValidateField(Request.Form(Field), Field) = False Then dictFields.Add LCase(Field), True End If Next If Request.Form.Count <>0 Dan dictFields.Count = 0 Kemudian Panggil Perbarui Lain Jika Request.Form.Count<>0 Kemudian End If ShowForm("Sign") End If case "show" Call Show case Else Call Show End Select %>

    Hanya dua kasus yang dipertimbangkan di sini, sesuai dengan dua fungsi aplikasi Web kami: menambahkan entri baru ke buku tamu (nilai parameter mode = “post”) dan melihat pesan buku tamu (nilai parameter mode = “tampilkan” ).

    <% objRec2.Close Set objRec2 = Nothing s objConn.Close Set objConn = Nothing Response.Write "

    " %>

    Kesimpulan

    Kami mempertimbangkan satu lagi komponen fungsional situs, dan segera menjadikannya portabel. Hasil dari ini adalah kode sumber yang agak rumit dalam hal persepsi. Meskipun sejumlah besar parameter yang diambil dari tabel administratif membuat agak lebih sulit untuk memahami kode sumber modul, namun, menggunakannya sekali dan untuk semua akan menyelamatkan Anda dari keharusan mengedit kode ketika mereka berubah. Sistem yang dikembangkan oleh kami cukup dapat diterima untuk digunakan, dan berkat modularitas implementasinya dan pendekatan implementasinya di situs yang ada yang dijelaskan dalam artikel, dapat digunakan sebagai buku tamu di situs dengan hampir semua tingkat kerumitan .

    Tentu saja, antarmuka Web untuk mengedit, menambah, dan menghapus pengaturan administratif (skema) juga harus dipertimbangkan, tetapi ini akan memakan banyak waktu, dan oleh karena itu penulis akan mencoba membahasnya di salah satu bagian berikut dari artikel ini.

    KomputerTekan 11 "2001