|
|
Ngoài ra để an toàn hơn, thông thường người ta chỉ kiểm tra username, sau đó giá trị trả về thì đem so sánh Password với nhau sẽ secured hơn.
Chưa kể bạn còn có thể mã hóa password bằng 2 lần md5() hoặc phân nó ra làm 2 fields sau đó gộp lại rồi mã hóa md5(), rất nhiều cách.
|
|
|
Code:
select * from Khachhang where TenDN='{$TenDN}' and MatKhau
='{$MatKhau}'
Ứng với câu lệnh thế này, thì bạn cần hiểu là:
$TenDN = ' or '1'='1
$MatKhau = ' or '1'='1
Thì câu lệnh sẽ trở thành:
Code:
select * from Khachhang where TenDN='' or '1'='1' and MatKhau
='' or '1'='1'
Hiển nhiên khi bạn chạy câu lệnh này nó sẽ là câu lệnh đúng, do vậy đó là cách bạn đăng nhập không cần password.
Khắc phục:
Bằng cách chèn dấu slash bằng hàm addslashes() để vô hiệu hóa dấu ' mà User nhập vào là OK.
|
|
|
Oh không, đó chỉ là những lệnh được apache quy định sẵn không nên gọi là ngôn ngữ, còn .htaccess có nhiệm vụ ghi nhận những lệnh đó overwrite vào dưới quyền cho phép như khi edit file httpd.conf thôi !
|
|
|
Oh sorry bác, mình gõ nhầm, code phải viết là:
Code:
RewriteRule ^([\?a-zA-Z0-9]*) download.php?id=$1
Chèn dấu "?" vào trong ngoặc vuông và thêm 1 dấu \ vào để nó hiểu ko phải là ký hiệu mà chỉ là một dấu ? là ok.
|
|
|
dùng .htaccess liệu có wwwect url được không? ví dụ detect visitter ở vn là chuyển url sang google.com.vn như google?. ai rõ vụ này không?
Tất nhiên là được, .htaccess hay cụ thể là Mod Rewrite có thể làm được rất nhiều việc, và bạn chỉ cần tạo một thuộc tính là [R] (Redirect) ở phía sau 1 RewriteRule là ok.
Code:
RewriteCond %{REMOTE_ADDR} ^202\.12\.13\.14$ [OR]
RewriteCond %{REMOTE_ADDR} ^202\.12\.13\.15$
RewriteRule .* http://google.com.vn [R,L]
Còn địa chỉ IP thuộc VN thì tùy thuộc vào bạn
Chú thích:
RewriteCond = Rewrite Condition, điều kiện cho 1 Rewrite Rule
R = Redirect
L = Last Rule
|
|
|
Em đang cần chuyển /?id về /download.php?id nhưng dùng kí tự ? trong htaccess hình như không được, anh nào chỉ cho em được ko ạ.
demo như trang này smilie
http://www.mediafire.com/?enmtn5dgzi0
Được chứ bác !
.htaccess không phải là không làm được mà bác không biết làm
Bác có thể viết một RewriteRule thế này:
Code:
RewriteRule ^?([a-zA-Z0-9]*) download.php?id=$1
Bác test đi nhé
|
|
|
Hợp lý là thế nào bạn nhỉ ? câu hỏi ở trên là "sql injection" thì ở dưới bạn nên hỏi là nhập thế nào hoặc chặn sql injection bằng cách nào chứ ?
|
|
|
À quên, còn cái hiệu ứng xuất hiện flash, hoặc cái khung flash đó chuyển động thế nào thì bác nên tự viết mới đúng theo ý mình
|
|
|
Bạn dùng thuộc tính display trong CSS ấy, ví dụ:
Code:
<script language="javascript">
<!--
function close_flash()
{
document.getElementById("flash").style.display = "none";
}
//-->
</script>
<div id="flash">
[code FLash]
</div>
<a href="javascript:close_flash();">Click here to close</a>
Mình type trực tiếp vào textarea này nên ko test lại, chủ yếu là ở dòng style.display = "none" bác nhé
|
|
|
Ý tưởng nghe có vẻ hay chứ nhỉ Nhưng để làm nó mà chưa hiểu về cách hoạt động của torrent, chưa kể lại không rành về mạng mà lại thiên về Win Form, bác có thấy bác có quá tham lam không ?
Em có đọc qua và xin tóm gọn lại như sau:
Vấn đề 1: Server có 1 hoặc n file(s) game(s)
Vấn đề 2: Client download 1 hoặc n file(s) game(s) ở Server
Vấn đề 3: Sau khi client download xong thì thực hiện quá trình upload (Như Torrent)
Vấn đề 4: Một client khác khi download link trên Server thì được tự động dẫn tới những link do Client ở vấn đề 3 upload.
Như vậy, sẽ dễ dàng nhận thấy điểm quan trọng nhất là ở vấn đề 3, khi Client thực hiện quá trình upload thì file đó sẽ upload về đâu ? - Cơ bản nếu bác dùng server mà lại cho upload ngược vào Server bác thì là vô nghĩa - Còn nếu cứ cho upload bâng quơ thì rõ ràng lại càng không được, vì lập trình chứ không phải sáng tác thơ Như vậy cũng sẽ quay lại peer to peer thôi
Cho nên nếu chỉ dùng ngôn ngữ lập trình thì có lẽ là không được và em nghĩ không đơn giản mà người ta lại có hẳn một giao thức gọi là BitTorrent.
|
|
|
Mình cũng không muốn nói nhiều, nhưng nếu bạn cẩn thận thì bạn sẽ thấy rõ những con shell đều có một vài đặc điểm chung Do vậy mình cũng chưa cần phải biến vội đâu nhỉ
|
|
|
Thông cảm cho [Tic.Tac] nào, chắc là quen viết kiểu Teen age nên khi viết cái gì cũng thiếu nét, sửa chữ.... nhưng tên biến trong lập trình web viết tắt được thì lại càng tốt
|
|
|
Sáng tạo thì cần phải có kiên nhẫn và đam mê, cứ cho là bạn có đam mê, nhưng để kiên nhẫn thì bạn phải có sức khỏe tốt... mà làm gì mà tới "quá yếu" vậy :-&
|
|
|
Code:
<?php
echo "<a href='#' onclick='update_widget(' widget.php?l1=1');'">click</a>" ;
?>
Bạn viết lại như sau:
Code:
<?php
echo "<a href='#' onclick='update_widget(\' widget.php?l1=1\');'>click</a>" ;
?>
|
|
|
Ừ, đúng Có lẽ nên kiểm tra nội dung xem có phải là text file không
|
|
|
Dù có sữa lại code thề này thì người ta vẫn có cách tạo ra 1 con r57 để sài đó
Thế thì viết thêm một đoạn code vào cuối phần upload để check nội dung thì sao >
|
|
|
Biến $link lúc này là 1 mảng được tạo:
Code:
$link = explode(".", $link);
Khi đó dùng hàm count() để tính số rows trong mảng đó, link của 1 file php khi upload lên rapidshare thường có đoạn cuối là: .php.html
Như vậy nếu -1 thì kết quả sẽ lấy là html, -2 là php. Vậy thui :d
|
|
|
Em nghĩ để khắc phục khe hở trên thì nên tạo 1 hash riêng cho từng thành viên, khi đó trên mỗi URL có tác động đến những thông tin nhạy cảm thì sẽ có thêm đoạn "&mem_key=abc" trong URL, như vậy chỉ cần kiểm tra mem_key trên URL so sánh với mem_key của thành viên đó là ok
|
|
|
Mới update thêm > 40 ebooks, xin xem trang đầu.
|
|
|
Mình chỉ có dịp làm 1 dự án có sử dụng VBB nên tìm hiểu qua phần login và register để tích hợp cms của mình, nên không thể gọi là nghiên cứu mã nguồn VBB nhiều :p
|
|
|
Đã update thêm sách, mời bạn vô trang đầu xem.
|
|
|
Mấy files trong đó phần lớn do sưu tầm, tắt firewall hay real-time antivirus thì coi chừng đó bạn à :d
Hiện tại bác nào muốn download thì cần đăng nhập và post ít nhất 5 bài ở diễn đàn vì anh em vô download đông quá làm tui chuyển hosting liên tục ( hổng có tiền mua server ).
Và do có phần kiểm tra mã xác nhận nên chỉ gửi được 1 request tải về.
|
|
|
Đã cập nhật thêm ebooks, xin xem trang 1.
|
|
|
1. Đăng nhập
Chuẩn bị:
+ $input_pwd: password nhập vào khi đăng nhập
+ $user_hash: giá trị của field "converge_pass_hash" trong table "ibf_members_converge" ứng với id theo username điền vào.
+ $user_salt: giá trị của field "converge_pass_salt" trong table "ibf_members_converge" ứng với id theo username điền vào.
Simple code snippet:
Code:
function converge_member ( $md5_once_password, $sql_password, $salt_password )
{
if ( ! $sql_password )
{
return FALSE;
}
if ( $sql_password == converge_passhash( $salt_password, $md5_once_password ) )
{
return TRUE;
}
else
{
return FALSE;
}
}
function converge_passhash($salt, $md5_once_password)
{
return md5( md5( $salt ) . $md5_once_password );
}
if ( converge_member ( $input_password, $sql_password, $salt_password ) != TRUE )
{
print "Wrong password, sir ^_^";
}
2. Đăng ký:
... Khi khác viết tiếp lại dở chứng làm biếng :d
|
|
|
Em cần chỗ nào bảo mật THẤP.Càng THẤP càng tốt
Lão này xem ra không chỉ đơn giản là học làm web đâu nhé )
|
|
|
Ai trả lời được câu hỏi của bạn chắc hẳn phải là cao thủ )
|
|
|
Lâu lắm rồi không viết tut ). với những thông tin dưới đây mà lhl xem được ở IBF và VBB, hy vọng sẽ giúp phần nào cho các bạn muốn tích hợp sản phẩm của mình với IBF hoặc VBB.
VBB:
1. Đăng nhập:
Chuẩn bị:
+ $input_pwd: password nhập vào khi đăng nhập
+ $user_salt: giá trị của field "salt" trong table "user" ứng với username điền vào.
+ $user_pwd: giá trị của field "password" trong table "user" ứng với username điền vào.
Kiểm tra:
Code:
md5($input_pwd.$user_salt) != $user_password
2. Đăng ký:
+ Chuẩn bị:
+ $input_pwd: password nhập vào khi đăng ký
Mã md5 của field "password" được lập như sau:
Code:
// make salt
$salt = '';
for ($i = 0; $i < 3; $i++)
{
$salt .= chr(rand(32, 126));
}
// Make pwd
$password = md5($input_pwd.$salt);
You will fail if you dont try your best - lhl.
IBF:
PS: Để... mai soạn, giờ đi ngủ ... ^_^. Thuật toán của VBB đơn giản hơn IBF đó bạn ạ.
|
|