Skip to main content

phimmoi.net - Bug nhỏ trong trang download

phimmoi.net - Bug nhỏ trong trang download
Tình hình là trong lúc vào tải phim tại phimmoi.net thì tôi vô tình phát hiện ra cái bug này, thường gặp phải khi kết hợp giữa PHP và JSON/JS để tạo nội dung động.

WTF? "Bug này" là bug gì?

Đó là một bug xảy ra đối với các phim mà tên có chứa dấu nháy đơn ('). Các bạn có thể xem demo đối với phim Bí mật của làng Achiara (tên tiếng Anh là: The Village: Achiara's Secret).
phimmoi.net - Bug nhỏ trong trang download
Dấu nháy đơn này sẽ phá vỡ các đoạn mã JavaScript phía sau nó khiến trang Download của phimmoi.net hoàn toàn đứng im, không thể thực thi hàm để đếm ngược 5 giây và trả lại các liên kết tải phim cho người dùng.

Phimoi.net có thể khắc phục như thế nào?

Việc này khá đơn giản, lập trình viên chỉ cần sử dụng một hàm rất quen thuộc khi làm việc với SQL đó là addslashes(), hàm này có tác dụng "trả về một chuỗi với các dấu gạch chéo ngược trước các ký tự cần được giải thoát". Ví dụ:

<?php
echo addslashes("The Village: Achiara's Secret");
// Output: The Village: Achiara\'s Secret

Đó là đối với phía server, còn đối với client (tức chúng ta - người dùng) thì có thể tạm thời khắc phục bằng đoạn JavaScript nhỏ sau:

/* Coded by Juno_okyo */
function getDownloadLinks(a,c,d){$.ajax({url:"/download.php",type:"POST",dataType:"JSON",data:{fileId:a,fileName:c,getLinkToken:d}}).done(function(a){$.each(a.links,function(a,b){console.info(b.resolution,b.url)})})}var regex=/var getLinkToken='(.+)';\nvar fileId='(.+)';\nvar fileName='(.+)';/,match=regex.exec($("head").text());null!==match&&getDownloadLinks(match[2],match[3],match[1]);

Chạy đoạn mã trên từ Console tại trang bị lỗi và chọn liên kết với chất lượng mà bạn muốn tải nhé!
phimmoi.net - Bug nhỏ trong trang download


Share this with your friends
Loading...