|
|
dreamcatcher wrote:
Ở đây có bác nào dùng LastPass không ạ? Em thấy cái này dùng khá hay, đặc biệt với ai dùng Chrome do thằng Chrome này không có Master Password.
Có mình dùng
Mình dùng LastPass để lưu giữ (và sinh ra) những password cho các website hay truy cập. Còn những website cần bảo mật cao như email, các tài khoản ngân hàng, ... mình dùng KeePass để lưu giữ. Như thế vừa giúp mình tiện đăng nhập khi vào các website ko mấy quan trọng mà vẫn bảo mật tốt.
KeePass có cái hay là portable, hơn thế nữa, còn có 1 anh em của nó là KeePassX có thể chạy trên Linux được.
|
|
|
@ManhQuan9x: bạn đọc thêm về usort() theo link mình đã dẫn sẽ hiểu nhiều hơn, ở đây mình giải thích cơ bản thôi nhé:
usort() (viết tắt của user-defined sort) là hàm sắp xếp do người dùng định nghĩa. Cái mà người dùng định nghĩa ở đây (hàm cmp() trong ví dụ trên) là thứ tự của 2 phần tử A và B được sắp xếp. 2 phần tử đó có thể là bất cứ thứ gì (mảng, xâu, số nguyên, ...). Hàm so sánh chỉ cần trả về 3 giá trị:
+ 0 nếu A và B có cùng vị trí
+ -1 nếu A đứng trước B trong thứ tự sắp xếp
+ 1 nếu A đứng sau B trong thứ tự sắp xếp
Thông thường hàm so sánh chỉ lấy 1 thông tin nào đó của A và B để so sánh, trong VD trên lấy thông tin Hits. Toàn bộ thông tin khác của A và B, VD như IP, đều được bảo toàn (nói thế này hơi trừu tượng, tốt nhất bạn nên print_r() mảng đã được sắp xếp thì sẽ hiểu).
Về việc sắp xếp mảng đa chiều, PHP cũng có hỗ trợ, bạn xem thêm hàm array_multisort().
PS: Những cái này google là có hết mà, trên php.net còn có rất nhiều ví dụ kèm theo.
|
|
|
@Azx: bạn nghiên cứu lệnh usort() nhé:
http://php.net/usort
VD của bạn có thể làm như sau:
Code:
function cmp($a, $b) {
if ($a->hits == $b->hits) {
return 0;
}
return ($a->hits > $b->hits) ? -1 : 1;
}
usort($data, 'cmp');
|
|
|
@Jino_Hoang: nếu là chatbox thì chỉ dùng ajax như bình thường thôi, upload ajax thì phức tạp hơn chút.
Nếu dùng jquery làm js lib thì có mấy plugin phục vụ cho ajax upload (search google nhé, vì nó cũng nổi tiếng lắm).
|
|
|
Acronis True Image có thể dùng được, ngoài ra, vikjava có thể dùng 1 trong mấy cái này xem:
Macrium Reflect Free ( http://www.macrium.com/reflectfree.asp), trong phần features của nó có nói:
Disk image can be created whilst Windows is in use. A special driver ensures that the disk image represents an exact point in time and will not be affected by disk access that may occur during the backup process.
Paragon Backup and Recovery ( http://www.paragon-software.com/home/db-express/index.html), cái này có mục Complete Backup:
Complete Backup - Create an exact copy of your PC including the operating system, applications, user settings and all data
2 cái này đều miễn phí.
|
|
|
Giải thích của myquartz thiên về lập trình quá
Mình giải thích đơn giản thế này thôi:
- sticky bit giúp cho 1 file khi thực thi sẽ được lưu giữ trong bộ nhớ. Nếu có user nào đòi thực thi file này nữa thì nó sẽ truy xuất bộ nhớ để làm việc, ko mất công initialize nữa.
- suid cho phép người khác chạy 1 file với quyền của owner. Người khác đó bắt buộc phải có quyền thực thi file.
suid hay dùng khi cần chạy 1 file nào đó mà các thao tác của nó yêu cầu quyền của owner.
VD bạn có 1 file script (owner là root) dùng để mount 1 partition và chmod cho mọi user đều có quyền chạy file này, thế nhưng khi chạy sẽ bị lỗi vì lệnh mount đòi user phải có quyền root. Khi đó, bạn có thể set user id cho file script, để 1 user bình thường khi chạy sẽ được cấp quyền của owner (root) và có thể mount bình thường.
- sgid cũng tương tự như suid, nhưng thay vì cấp quyền của owner thì cấp quyền của group cho người thực thi.
quanta cũng có viết 1 bài về suid và sgid trong forum, bạn tham khảo thêm cho rõ.
|
|
|
Trên Wikipedia có 1 vài kịch bản mô phỏng việc mạo danh session, bạn có thể tham khảo từ những VD đơn giản nhất trở đi:
http://en.wikipedia.org/wiki/Session_fixation
Ngoài ra, có thể coi 1 video-in-action tại Youtube để xem cách họ làm mạo danh thế nào:
http://www.youtube.com/watch?v=K33U4CnucO0
Cách hướng dẫn ngăn chặn lỗi này nhờ vào generate new session id, bạn có thể tham khảo tại đây:
http://phpsec.org/projects/guide/4.html
|
|
|
Mới học thì hay quên cũng là chuyện bình thường thôi, bạn đừng lo. Cần phải kiên trì và thực hành nhiều thì mới ghi nhớ được.
Khi bạn đọc sách về 1 vấn đề gì đó thì cố gắng đọc cặn kẽ, hiểu từng chi tiết ngay ở lần đầu. Cố gắng để lần sau gặp lại vấn đề này thì ko phải "cày" lại. Sau này dù bạn có thể vẫn phải giở sách hoặc manual ra để tra cứu, nhưng lúc đó nó mang tính tham khảo nhanh, chứ ko làm khó bạn nữa.
|
|
|
Bây giờ thì mọi thứ ok rồi Thanks anh conmale.
|
|
|
Gửi các anh admin,
Em mới post reply trong topic đố vui của anh StarGhost
/hvaonline/posts/list/0/34000.html#209021
thì thấy thứ tự các bài trả lời trong đó bị lộn xộn. VD như bài của anh StarGhost trả lời em và yourname xuất hiện trước cả 2 bài đó. Bài trả lời cuối cùng của em cũng bị đẩy vào giữa topic mà ko ở cuối.
Mong các anh xem xét.
|
|
|
Thử dùng Roboform hay KeePass nếu muốn dùng phần mềm riêng. Còn nếu dùng Firefox thì thử dùng LastPass coi sao.
|
|
|
Hay thật, mẹo của bạn cũng khá ấn tượng. Cũng may mà server của bạn cho phép chạy exec(); chứ không thì cũng chỉ biết ngó.
Mà sao bạn ko dùng chính mấy lệnh exec(); đó để thực hiện lệnh net user ... nhỉ, cho nó vào file .bat rồi gọi thật phiền phức.
|
|
|
Mình có đọc code của bạn và thử nghiệm với câu lệnh đơn giản kiểu như:
Code:
$id = "1'"; // có dấu nháy để test sql inj
$id = str($id);
$db->query("SELECT * FROM abc WHERE ID='$id'");
thì thấy hoạt động đúng, dấu nháy bị lược bỏ tự động.
Mình ko hiểu lắm về phương pháp chống sql inj kiểu này, bạn có thể giải thích giùm mình được ko? Tại sao khi dùng unhex() 1 chuỗi dính sql inj thì mysql vẫn thực hiện đúng? (Bởi hàm của bạn ở trên hoàn toàn ko lọc bỏ các ký tự đặc biệt, nó chỉ đơn thuần là mã hóa qua hex mà thôi)
|
|
|
Bạn tìm các phần mềm này nhé: NetLook, NetView, Network Assistant. Ngoài ra thì nên tìm google với từ khóa "LAN Chat" chẳng hạn.
|
|
|
code.google.com
github.com
|
|
|
Bạn dùng thử Partition Magic trong Hiren's Boot CD xem. Nếu ko có đĩa Hiren's Boot thì dùng thử Partition Wizard hoặc EASEUS Partition Master. Các phần mềm này đều miễn phí, bạn có thể tìm trên Google hoặc tải tại website dưới chữ ký của mình.
|
|
|
quanta wrote:
learn_net wrote:
Cảm ơn hai bạn đã giải đáp. Mình vẫn còn thăc mắc là :
1. Khi nào thì cần dùng Directory directive (ngoài virtual host như bạn nêu)?
Bất cứ khi nào cần áp dụng một số "luật" cho riêng một thư mục nào đó và các thư mục con nằm trong nó.
Đúng vậy. Để hình dung đơn giản, bạn cứ coi việc đặt các "luật" bằng <Directory> này tương tự như việc đặt "luật" thông qua htaccess. Nếu htaccess có thể đặt ở các thư mục con để tùy biến 1 số cấu hình đã lập ở thư mục cha, thì <Directory> cũng có thể làm được như vậy.
Thực tế thì việc cấu hình <Directory> này ở mức cao hơn htaccess, cần phải quyền quản lí web server (Apache), và nó có thể tắt/bật quyền dùng file htaccess cho các thư mục mà nó khai báo (nhờ vào "luật" Override).
quanta wrote:
learn_net wrote:
2. Option FollowSymLinks tác động như thế nào đến Directory được chỉ định ? Có thể cho mình ví dụ cụ thể được không?
FollowSymLinks là viết tắt của Follow Symbolic Links, có nghĩa là: tuỳ thuộc vào giá trị này được set hay không mà khi web server (Apache) tìm kiếm một file nó có dựa vào symbolic links hay không.
Chi tiết: http://www.maxi-pedia.com/FollowSymLinks
Cái này thường được dùng trên các máy dùng HDH linux, khi mà khái niệm symbolic được áp dụng. Nó cho phép truy xuất tới cùng 1 file (hoặc thư mục) thông qua 1 hay nhiều tên (symbolic links) khác nhau. Trường hợp hay gặp nhất là các web server thường hay tạo 1 symbolic www trỏ tới thư mục public_html.
Bạn có thể tìm hiểu thêm về symbolic links trong Linux để hiểu rõ hơn cái này.
|
|
|
<Directory "..."> dùng để ấn định các "luật" của Apache sẽ được áp dụng cho riêng Directory đó mà ko ảnh hưởng tới các directory khác.
Trong vd của bạn, các luật "Options", "AllowOverride", "Order" sẽ được áp dụng chỉ riêng cho "/usr/local/apache/htdocs" mà thôi. Cái này có ích khi mà bạn tạo các virtual host chẳng hạn, và muốn đặt các luật riêng cho mỗi virtual host đó.
Chi tiết thì có thể xem thêm ở link anh quanta đưa (có thể đọc docs của bản 2.0 luôn cho mới).
|
|
|
Nếu cả 2 địa chỉ ip của foo.example.com và host.example.com giống nhau thì mình ko chắc (nhưng mình nghĩ sẽ hoạt động được vì dù các dns server bỏ qua mx record mà đọc cname record thì nó vẫn trỏ đến đúng).
Nhưng ở đây có 1 thắc mắc hỏi lại bạn là trong các bài post trước, 2 địa chỉ ip này khác nhau, tại sao ở bài trả lời cuối cùng lại thành giống nhau?
Nếu 2 địa chỉ ip này khác nhau, dns server sẽ chuyển hướng nhầm, và cấu hình của bạn sẽ thành có lỗi.
|
|
|
huuhien đọc kỹ link đầu tiên anh quanta gửi đi, ở đó chỉ khá rõ rồi đó:
nếu bạn config:
example.com. CNAME host.example.com.
example.com. MX foo.example.com.
thì email gửi tới example.com đôi khi bị mail server "bỏ qua" record MX, mà chỉ đọc record CNAME, nên email sẽ gửi tới sai địa chỉ.
example.com. CNAME www.example.com
www.example.com. A 1.2.3.4
mail.example.com. A 1.2.3.5
example.com. MX mail.example.com.
(A CNAME record basically denotes an alias — it stands for canonical name.)
All seemed well. Web browsers connected to the right place and a test email message worked fine. However, he soon discovered that some email wasn’t reaching him any more.
To cut a long story short, it turns out that some mail servers ignore the MX records if there’s a CNAME. Instead, they simply follow the CNAME pointer and try to deliver the email there. In other words, they were trying to deliver email to his Web server!
|
|
|
@vncybernet: Hình như bạn rối lên ở việc phân quyền cho linux và samba rồi. Ở bài toán của bạn là chỉ phân quyền cho nhóm A được đọc, nhóm B đọc và ghi khi dùng samba. Vì thế, nếu trong file cấu hình của samba không đưa quyền của các nhóm khác vào thì các nhóm đó chẳng thể làm gì được trên thư mục đó cả (mặc dù đối với hệ thống linux thì các nhóm khác vẫn đọc được).
|
|
|
Mình nghĩ là bạn hiểu đúng rồi, nên chmod 775 cho thư mục test đó thay vì 770.
|
|
|
Bạn cho user test vào read list, tức là có quyền đọc, nhưng mà bạn đã chmod cho thư mục đó thuộc quyền của user root (700), nghĩa là user test hoàn toàn ko có quyền gì trên thư mục đó. Cũng trong link bạn đưa ở trên, có 1 phần rất quan trọng ghi rõ là quyền được cấp bởi Samba sẽ không ghi đè lên quyền của hệ thống *nix, nghĩa là trong trường hợp này của bạn, dù Samba cho user test quyền được đọc, nhưng hệ thống không cho nó quyền gì thì nó cũng không làm được gì cả.
Để khắc phục, bạn thử chmod lại quyền cho user test tại thư mục đó coi sao.
|
|
|
Mình vẫn dùng bản cũ, mặc dù nghe nói bản 9.10 có nhiều điểm cải tiến đáng kể. Nhưng mình chú trọng đến ổn định. Bản 9.04 này ko có vấn đề gì với mình nên cũng ko muốn update. Thử nghiệm nhiều rồi giờ đâm ra cũng lười đi nữa
|
|
|
Acronis TrueImage cũng có thể dùng được đó bạn. Phần mềm này ngoài tính năng hay được dùng là backup & restore 1 partitiont thì có thể dùng để backup & restore folders. Tính năng incremental backup thì có sẵn rồi. Chỉ có điều là nó ko miễn phí thôi.
|
|
|
Safe mode mà bật on thì hơi mệt, vì nó kiểm tra rất kĩ càng quyền của người dùng thao tác lên tập tin, nếu ko trùng với owner thì ko thực hiện được. Vì lí do này mà hầu hết các source nếu đã bật safe mode mà ko chmod cho đúng thì hầu như các thao tác với file bị cản lại hết.
Mình dùng từ trước tới giờ rất ngại gặp phải safe mode on, nếu thử trên máy local thì còn giải quyết nhanh được, chứ trên host thì chịu, vì ko đổi được quyền sở hữu của user. Với lại, mình thấy hầu hết các host đều đặt safe mode off, nhưng chmod ổn thì cũng ko ảnh hưởng gì, chạy vẫn tốt cả.
|
|