Posts filed under 'lập trình web'

Đề thi kiểm tra kiến thức Hệ điều hành và Mạng máy tính

Phần 2. Hệ Điều Hành

Câu 1:
Máy tính cài hệ điều hành Windows Version từ Windows 2000 trở lên có tài khoản IUSR_ComputerName hay không, nếu có trong trường hợp nào và tài khoản đó thuộc nhóm người nào, quyền hành ra sao?

Câu 2:
IIS Version 5.1 (chạy trên Windows XP) có đặc điểm gì mà bạn cho là khác so với IIS Version 6 (chạy trên Windows 2003)?

Câu 3:
Khi bạn bật Task Manager lên chuyển qua thẻ Processes nhìn xuống cột User Name thấy có SYSTEM,Vậy thì SYSTEM có phải là một user hay không?

Câu 4:
Theo đánh giá của bạn chức năng Intergrated Windows Authentication của IIS có những lợi ích gì?

Câu 5:
Với ISS, khi ta Enable Anonymous Access lên, thì chức năng Intergrated Windows Authentication còn tác dụng hay không?

Câu 6:
Đặt giả sử bạn cài Apache trên Windows XP hoặc Windows 2003 Server, Apache được chạy như một service của Windows. Đặt giả sử như Apache được cài đặt để làm việc với 1 server script (như PHP chẳng hạn); trên thư mục chủ có 1 shell. Nếu là bạn bạn có thể định cấu hình như thế nào để shell này không thể xóa những dữ liệu ở một khu vực nào đó trong hệ thống của bạn?

Câu 7:
a) Mô hình ODBC là gì? Bạn biết gì về JDBC?
b) Việc sử dụng DBMS Microsoft Access có điểm bất lợi gì, ưu điểm gì?

Câu 8:
Khi máy tính nhà bạn có điện nguồn vào mà không hoạt động được (Màn hình đen) thì việc đầu tiên bạn sẽ làm gì?

Câu 9:
Để máy tính của bạn bền và không mất data bạn nên dùng tiện ích Diskdefragmenter có sẵn trong Windows để sắp xếp lại HDD mỗi tuần là đúng hay sai? Bạn có cách nào hay hơn không?

Câu 10:
Bạn biết là ngôn ngữ C/C++ có kiểu con trỏ. Vậy với hệ máy tính 16 bit sử dụng chip 8086 của Intel thì con trỏ là gì?
A – Chỉ là một định danh nào đó giúp trình biên dịch định vị biến
B – Là một vùng nhớ 4 byte lưu địa chỉ vùng nhớ nào đó mà con trỏ trỏ đến
C – là vùng nhớ 2 byte lưu địa chỉ vùng nhớ con trỏ trỏ đến
D – Con trỏ là một chỉ thị tiền biên dịch

Phần 3. Mạng Máy Tính

Câu 1:
Khi từ trình duyệt ta gõ một URL: www.google.com thì thông tin mà trình duyệt gửi ra ngoài sẽ đến đâu đầu tiên:
A – Đến Web Server của Google
B – Đến DNS Server mà máy tính bạn trỏ đến
C – Đến DHCP Server mà máy tính bạn trỏ đến

Câu 2:
Như chúng ta đã biết trên lý thuyết địa chỉ IP bắt đầu từ 0.0.0.0 tới 255.255.255.255, vậy bạn có thể cho biết địa chỉ lớp B bắt đầu từ đâu và kết thúc từ đâu? và IP 127.0.0.1 có sử dụng để kết nối mạng được không? vì sao?

Câu 3:
Trong một Hệ Điều hành Windows hay *nix , khi vừa cài xong, đã kết nối mạng nhưng không dùng trình duyệt (Browser), không dùng Soft và Webmail để connect, chúng ta muốn gửi một E-mail thì có gửi được không? Nếu được thì bằng cách nào?

Câu 4:
Trong giao thức POP3 (Post Office Protocol version 3), khi gửi e-mail đi thì password sẽ được mã hóa theo dạng nào?

Câu 5:
Khi up 1 con shell có chức năng Back connect lên server, và bạn thực hiện NetCat để connect, vậy bạn hiểu thế nào về Back Connect? và lợi ích của việc dùng Back Connect?

Câu 6:
Mô hình TCP/IP gồm có bao nhiêu lớp, hãy kể tên và nhiệm vụ của từng lớp cũng như các giao thức có trong nó, cho biết giao thức SMTP nằm ở lớp nào?

Câu 7:
Bạn có thể dùng 2 máy tính nối vào 1 Modem và thực hiện sự trao đổi Data cũng như cho 2 máy nhìn thấy nhau giống như mạng LAN được không? Nếu được bạn hãy trình bày.

Câu 8:
Trong một phòng Lab có 20 máy, dùng 2 link ADSL: 1 của FPT và 1 của VDC, sài 2 Modem nhưng chỉ nối với 20 máy đó bằng 1 Hub, cấu hình sao cho 10 máy bên này dùng dịch vụ của VDC và 10 máy dùng dịch vụ của FPT, hỏi có thể làm cho các máy nhận ra nhau như trong mang LAN được không? và bằng cách nào?

Câu 9:
Bạn biết rằng chúng ta gõ vào trình duyệt 127.0.0.1 hoặc localhost thì cả 2 đều trỏ đến chính máy chúng ta. Vậy làm cách nào để đổi được từ trình duyệt gõ google.com thì cũng tương đương việc ta gõ 127.0.0.1

Câu 10:
Nếu được lựa chọn một hệ điều hành máy server bạn sẽ chọn Linux hay Windows , vì sao bạn lại có những lựa chọn như vậy?

Mọi người nếu thích có thể tải 1 số Eboooks mà tuanh sưu tầm được về mục này để tham khảo, link tuanh đã để sẵn ở phần Blogroll rồi đó.

Add comment 30/08/2007

Cách tạo Name-based virtual host

Người dùng sử dụng tên ảo với mục đích chạy được nhiều tên (hostnames) khác nhau trên một máy chủ. Có hai loại tên ảo có thể sử dụng trong Apache: cách dựa vào tên (name-based virtual host) và cách dựa vào IP (IP-based virtual host).

Sử dụng tên ảo bằng cách dựa vào tên có lợi điểm là bạn chỉ cần dùng một địa chỉ IP cho tất cá các tên.

Điều quan trọng là bạn phải khai báo tất cả các tên bạn muốn dùng với Apache trong máy chủ DNS trước. Nếu bạn chỉ khai báo thoải mái các tên khác nhau trong httpd.conf (hay apache.conf) mà trong máy chủ DNS không hề có thông tin của các tên thì người dùng sẽ không thấy được trang web của bạn. Cái điểm yếu của việc sử dụng tên ảo dựa vào tên là bạn không thể xài SSL (https://) cho tất cả các tên vì SSL yêu cầu mỗi tên phải có riêng một IP trong khi sử dụng tên ảo dựa vào tên thì bạn chỉ có một IP duy nhất cho nhiều tên khác nhau.

Ví dụ cụ thể:

vnlinux.org có địa chỉ là 24.153.136.146. Tại sao mình biết? Chỉ việc gõ host vnlinux.org thì bạn sẽ thấy trả lời giống bên dưới:

rhs@gw rhs $ host vnlinux.org

vnlinux.org has address 24.153.136.146

Mỗi lần ghé thăm trang web vnlinux.org, thì người dùng có thể gõ http://www.vnlinux.org hay http://vnlinux.org sẽ đều thấy cả hai địa chỉ khác nhau nhưng nội dung thì như nhau. Tại sao vậy? Nếu bạn gõ host www.vnlinux.org thì bạn sẽ thấy trả lời là

rhs@gw rhs $ host www.vnlinux.org

www.vnlinux.org is an alias for vnlinux.org.

Lý do là vì mình đã khai báo trong DNS record, www.vnlinux.org sẽ là alias (hay còn gọi là CNAME khi thiết lập máy chủ DNS) của vnlinux.org
Bên dưới là những hàng mình lấy ra từ tập tin db.vnlinux.org của máy chủ DNS

vnlinux.org. IN A 24.153.136.146

www.vnlinux.org. IN CNAME vnlinux.org.

Trong httpd.conf (hay apache.conf), mình khai báo ServerName www.vnlinux.org

Ví dụ trên chỉ đơn thuần giải thích cách dùng CNAME cho trang web .

Kế tiếp mình sẽ giải thích cách cấu hình dns và apache cho việc sử dụng tên ảo dựa vào tên (name-based virtual host).

Ví dụ trên bạn cũng đã thấy www.vnlinux.org có IP là 24.153.136.146 Mình cũng đã có những trang web sau cùng có chung IP với vnlinux.org bằng cách sử dụng tên ảo dựa vào tên.

howto.vnlinux.org

i18n.vnlinux.org

dịchthuật.vnlinux.org *

Bên dưới là kết quả của lệnh host cho những tên phía trên.

rhs@gw rhs $ host howto.vnlinux.org

howto.vnlinux.org has address 24.153.136.146

rhs@gw rhs $ host i18n.vnlinux.org

i18n.vnlinux.org has address 24.153.136.146

rhs@gw rhs $ host xn--dchthut-5p4c4j.vnlinux.org

xn--dchthut-5p4c4j.vnlinux.org has address 24.153.136.146

* xn--dchthut-5p4c4j là punycode format cho dịchthuật
Xem thêm về punycode bằng cách nhấn đây http://search.yahoo.com/search?ei=UTF-8&fr=sfp&p=punycode

Thông tin khai báo cho DNS (Nhớ khởi động lại máy chủ DNS):

howto.vnlinux.org. IN A 24.153.136.146

i18n.vnlinux.org. IN A 24.153.136.146

xn--dchthut-5p4c4j.vnlinux.org. IN A 24.153.136.146

Thông tin khai báo trong httpd.conf (hay apache.conf hay VHost.conf…)

NameVirtualHost 24.153.136.146:80

(VirtualHost 24.153.136.146:80)

ServerAdmin me@here.com

DocumentRoot /Nơi/các/tập/tin/nằm/trong/htdocs

ServerName www.vnlinux.org

ErrorLog logs/VietLUG_error_log

CustomLog logs/VietLUG_access_log common

DirectoryIndex index.html

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}

RewriteRule .* – [F]

(/VirtualHost)

Thay () với <> trước và sau chữ VirtualHost. Đừng quên thay hàng đầu phía trên.

(VirtualHost 24.153.136.146:80)

ServerAdmin me@here.com

DocumentRoot /Nơi/các/tập/tin/nằm/trong/htdocs

ServerName xn--dchthut-5p4c4j.vnlinux.org

ErrorLog logs/dichthuat_error_log

CustomLog logs/dichthuat_access_log common

DirectoryIndex index.html

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}

RewriteRule .* – [F]

(/VirtualHost)

Thay () với <> trước và sau chữ VirtualHost. Đừng quên thay hàng đầu phía trên.

Làm y chang như trên cho hai tên howto và i18n. Sau khi khai báo các hàng trên, bạn phải khởi động lại apache.

Lưu ý: những dòng trên là những khai báo căn bản trong httpd.conf. Tùy vào nhu cầu phục vụ trang web mà bạn rất có thể cần thêm bớt các giá trị tùy thích

Nếu bạn đã khai báo trong DNS và apache đầy đủ mà vẫn không thấy các tên ảo hoạt động, rất có thể bạn phải chờ trong vòng một ngày (hoặc sớm hơn, hoặc lâu hơn) để DNS records chứa những thông tin bạn vừa thành lập được cập nhật.

Muốn kiểm tra ngay lập tức xem các tên ảo đã được thiết lập đúng chưa bạn có thể gõ httpd -S (hay apache -S)

Bài viết trên đã hướng dẫn cách thiết lập dns và apache cần thiết cho việc sử dụng tên ảo dựa vào tên (name-based virtual host).

Add comment 30/08/2007

Ứng dụng tập tin .htaccess trên Apache Webserver

Tạo trang báo lỗi mang màu sắc cá nhân

Trong quá trình làm việc với client, nếu có lỗi xảy ra (ví dụ như không tìm thấy tập tin) thì Apache sẽ báo lỗi bằng một trang có sẵn hiển thị mã số của lỗi đó, rất không đẹp và khó hiểu.

Với .haccess thì bạn có thể tự tạo các trang báo lỗi hay hơn. Để làm được điều này thì trong tập tin .htaccess bạn thêm dòng sau:

ErrorDocument mã số lỗi /trangloi.html

Trong đó mã số lỗi là mã số của lỗi phát sinh, sau đây là những lỗi hay gặp:

- 401 – Authorization Required (cần password để truy nhập)
- 400 – Bad request (Lỗi do yêu cầu)
- 403 – Forbidden (không được vào)
- 500 – Internal Server Error (lỗi server)
- 404 – Wrong page (lỗi trang, không tìm thấy…)

còn trangloi.html là trang web mà bạn muốn hiển thị khi lỗi phát sinh, có thể đưa vào tập tin này nội dung hay đồ hoạ gì tùy bạn, chẳng hạn liên kết trở về trang chính của trang web. Ví dụ: ErrorDocument 404/trangloi.html hoặc: ErrorDocument500/loi/500.html

Bây giờ bạn hãy tải (upload) 2 tập tin .htaccess và trangloi.html lên hosting của mình.

Chống ăn cắp băng thông (bandwidth)

Thông thường những dịch vụ lưu trữ web chỉ cung cấp cho bạn một lượng dữ liệu luân chuyển (data transfer) nhất định hàng tháng và khi bạn sử dụng hết lượng dữ liệu này, website của bạn sẽ tự động bị đóng cửa. Bạn sẽ phải trả thêm tiền cho lượng băng thông vượt quá hoặc phải buộc lòng chờ đến tháng sau.

Nếu hình ảnh, dữ liệu, … của bạn bị các website khác “ăn trộm” (bằng các thủ thuật đơn giản) làm cho lượng dữ liệu luân chuyển của bạn tăng lên, thì có nghĩa là bạn sẽ phải trả tiền cho cái mà bạn không sử dụng. Sử dụng tập tin .htaccess là một giải pháp hoàn hảo, để ngăn chặn việc sử dụng hình ảnh trái phép trên website của bạn. Bạn chỉ việc đưa vào tập tin .htaccess nội dung sau :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ – [F]

Ở đoạn mã trên tôi sử dụng module Rewrite của máy chủ Apache, bạn chỉ việc thay đổi trangweb.com thành địa chỉ website của mình.

Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” băng thông, bạn dùng dòng lệnh sau:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L]

Không cho hiện danh sách tập tin trong thư mục

Trong trường hợp một thư mục nào đó không có tập tin index hoặc default, Apache sẽ hiển thị một danh sách liệt kê những tập tin có trong thư mục đó. Tuy nhiên nếu đây là những tài liệu nhạy cảm, bạn không muốn người khác thấy, hãy thêm lệnh sau vào tập tin .htaccess

Options –Indexes

Thay thế trang index

Thông thường khi truy nhập vào một trang web, Apache sẽ tìm tập tin index.htm hoặc default.htm trả kết quả về cho trình duyệt, bạn có thể dùng .htaccess thay đổi mặc định này.

DirectoryIndex index.php index .php3 messagebrd.pl index.html index.htm

Với dòng lệnh này thì tất cả các tập tin được liệt kê sẽ được tìm theo thứ tự khi có yêu cầu tới thư mục hiện hành, trang nào được tìm thấy đầu tiên sẽ thành trang index của thư mục.

Cấm/hạn chế IP truy nhập

Một số người muốn làm ngập (flood) trang web của bạn, việc cần làm là ngăn cấm những IP của những người này truy nhập vào trang web, bạn thêm đoạn mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nhập: allow from 203.262.110.20.

Nếu bạn chỉ viết IP dưới dạng: 203.262.110 thì sẽ cấm tất cả IP trong dải từ 203.262.110.1 đến 203.262.110.254.

Sử dụng dòng lệnh sau: Deny from all sẽ cấm tất cả mọi truy nhập đến các trang web trong thư mục, tuy nhiên các tập tin trong đó vẫn có thể được sử dụng từ bên ngoài thông qua các lệnh dạng require hay include (trong lập trình PHP), có thể xem thêm mã nguồn của PHPBB forum,IBF… để hiểu rõ hơn.

Tự động chuyển đến địa chỉ mới (Redirection)

Bạn chuyển trang web của mình đến địa chỉ mới nhưng không phải ai cũng biết điều này, redirect truy nhập từ xa một cách đơn giản bằng lệnh sau:

Redirect/olddirectory http://www.trangwebmoi.com/thumucmoi ;

Tuỳ biến đuôi tập tin

Thông thường, tuỳ thuộc vào ngôn ngữ lập trình web mà bạn sử dụng tập tin sẽ có phần mở rộng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên nếu sử dụng .htaccess bạn có thể tác động vào máy chủ Apache, Apache sẽ gọi đến tập tin của bạn và trả về cho trình duyệt web của người dùng với phần mở rộng do bạn quy định trong .htaccess. Bạn sử dụng đoạn lệnh sau trong tập tin .htaccess:

RewriteEngine on
RewriteRule (.*)\.dll$ $1.html

Html là phần mở rộng thực sự của những tập tin trên website, dll là phần mở rộng do bạn lựa chọn. Lưu ý trong liên kết trên trang web, bạn phải gọi đúng đường dẫn đến tập tin với phần mở rộng mới (ở trên là dll), ví dụ http://www.trangweb.com/index.htm

Lưu ý khi sử dụng tập tin .htaccess:

- Chỉ áp dụng trên máy chủ Apache đã bật chế độ .htaccess, nếu chưa bạn hãy thử liên hệ với nhà cung cấp dich vụ hosting.

- Để tạo ra tập tin này bạn có thể sử dụng ngay chương trình Notepad của Windows: chọn chế độ save as với tên .htaccess, nhưng khi lưu nhớ bỏ đuôi txt.

-.htaccess chỉ có tác dụng đối với những tập tin ngang hàng (trong cùng thư mục với nó) hoặc thư mục con. Với thư mục, nó chỉ có tác dụng trong thư mục chứa nó và thư mục con, còn vô tác dụng với thư mục mẹ (parent directory).

- Bạn có thể dùng một số chương trình FTP (Leaf FTP, WS FTP, Cute FTP) để tải tập tin .htaccess lên hosting của mình với chế độ ASCII, nếu nó không hoạt động bạn thử CHMOD với giá trị 644.

Add comment 18/07/2007


Calendar

Tháng Mười Một 2009
T2 T3 T4 T5 T6 T7 CN
« Tháng 9    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Posts by Month

Posts by Category