Có một vài thay đổi lớn trong phiên bản này:
Hãy xem xét từng thay đổi chi tiết hơn.
Chúng ta sẽ bắt đầu với một số thông tin về WebRTC, vì chức năng này được tích hợp trong mọi trình duyệt hiện đại, và lộ ra ip thật của bạn ngay cả khi bạn đang sử dụng proxy. WebRTC là một api giúp thiết lập kết nối giữa các trình duyệt và truyền thông tin giữa chúng. Hơn nữa, ưu tiên được dành cho kết nối trực tiếp, và chỉ khi cả hai trình duyệt đều nằm sau firewall hoặc NAT, thì một máy chủ đặc biệt mới được dùng để truyền lưu lượng giữa chúng. Việc thiết lập kết nối không dễ dàng do thực tế là địa chỉ ipv4 không đủ cho tất cả các thiết bị, vì vậy hầu hết chúng nằm trong các mạng riêng, có địa chỉ như 192.168.. Hoặc 172.16.. và trao đổi thông tin với các thiết bị khác thông qua NAT. WebRTC sử dụng thuật toán sau để thiết lập kết nối - các thiết bị nhận thông tin về cấu hình mạng của chúng và trao đổi nó qua một kênh khác nào đó, sau đó chúng thử kết nối bằng các tùy chọn cấu hình khác nhau (các ip khác nhau). Giả sử nếu các thiết bị nằm trong cùng một mạng, thì để thiết lập kết nối, chỉ cần dùng ip trong mạng này là đủ, nếu một trong các thiết bị có ip bên ngoài, thì nó đóng vai trò "server" và thiết bị thứ hai kết nối với nó, hoặc ngược lại. Chúng ta chỉ quan tâm đến cấu hình của mạng, vì nó chứa địa chỉ ip thật. WebRTC cho phép đọc chúng, và thậm chí chỉnh sửa qua javascript trước khi gửi đến bên kia. Thông tin ở định dạng SDP được mô tả trong các tài liệu này https://tools.ietf.org/html/rfc5245#section-15 https://tools.ietf.org/html/rfc4566. Liên kết sau minh họa cách nó có thể được lấy qua trình duyệt https://jsfiddle.net/wrbyLqkn/1/, rất có thể bạn sẽ tìm thấy ip thật của mình ở đó. Ip bên ngoài của trình duyệt là một phần của thông tin này, nó có thể được lấy qua một request đến máy chủ STUN. Chức năng của máy chủ này rất đơn giản - nó trả về địa chỉ ip thật cho thiết bị đã tạo request. Site tự đặt địa chỉ máy chủ STUN, ví dụ, trong đoạn mã trên, máy chủ stun.l.google.com:19302 đã được sử dụng. Các request đến máy chủ này đi qua giao thức UDP (không phải TCP như thường lệ) bỏ qua proxy. Tóm lại những điều trên, javascript có thể tạo một request đến máy chủ tùy ý mà không cần proxy và nhận được phản hồi dưới dạng ip bên ngoài thật. Đây là một bài viết hay nếu bạn muốn biết thêm https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/
Cho đến gần đây, BAS cấm mọi request ip WebRTC. Trong phiên bản này, nó thay đổi ip nhận được từ WebRTC thành ip bên ngoài của proxy hiện tại. Điều này xảy ra theo mặc định khi sử dụng action 'Proxy', tuy nhiên, chức năng mới có thể bị vô hiệu hóa. Hãy xem xét chi tiết triển khai:
Có một phương pháp đơn giản để kiểm tra xem một site có đang cố lấy ip của bạn qua WebRTC hay không, chỉ cần cài đặt Wireshark, đặt chuỗi 'stun' vào trường bộ lọc, và truy cập site mà bạn muốn kiểm tra. Nếu nó dùng WebRTC, các request sẽ được hiển thị trong cửa sổ ứng dụng. Đây là video minh họa điều này:
Trong trường hợp của BAS, sẽ không có request nào, ngay cả khi ip được trả về.
Tại sao không tạo request đến máy chủ STUN qua proxy? Không phải tất cả proxy đều hỗ trợ giao thức UPD, mặc dù điều này được chỉ ra trong đặc tả. Một ví dụ về proxy như vậy là Trong tương lai, BAS sẽ kiểm tra proxy về tính năng này, nhưng bây giờ tất cả request đến máy chủ STUN đều bị cấm.
Như bạn có thể thấy triển khai thay thế WebRTC hiện tại không hoàn hảo nhưng nó đủ gần với điều đó.
Ngoài ra, action 'Proxy' giờ đây cũng có thể tự động thay đổi vị trí địa lý và múi giờ của trình duyệt.
Việc thay đổi múi giờ giờ đây cũng xảy ra ở cấp độ trình duyệt - tuyệt đối tất cả các ngày mà trình duyệt trả về giờ đây có múi giờ giống hệt với múi giờ của proxy.
BAS đã học được cách trả về đúng ngày đã sửa đổi, có tính đến DST.
Một cách khác mà bạn có thể lấy vị trí thật gần đúng của mình với trình duyệt là dùng internationalization api ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat). Ví dụ sử dụng: https://jsfiddle.net/0Lq2km96/, liên kết này sẽ hiển thị vị trí thật gần đúng của bạn bất kể proxy và vpn.
Các giá trị này cũng được thay thế khi sử dụng action 'Proxy', bạn có thể xác minh điều này bằng cách truy cập trang trước từ BAS.
Cuối cùng, có thể xảy ra rằng ip mà bạn dùng để truy cập proxy không khớp với ip bên ngoài của nó, trong những trường hợp như vậy BAS sẽ nhận ip bên ngoài qua dịch vụ ip.bablosoft.com. Rất tiếc, không có cách nào để lấy địa chỉ mà không cần request mạng. Dịch vụ sẽ hoạt động ổn định ở mức 20k request mỗi giây. Điều này có thể bị vô hiệu hóa.
Rất nhiều sự chú ý trong bản cập nhật mới được dành cho khả năng sử dụng của cửa sổ chính.
Đối với các mục có giá trị có thể không hoàn toàn rõ ràng, các gợi ý đã xuất hiện. Nhiều chi tiết tiện lợi đã được triển khai: danh sách các dự án gần đây giờ đây luôn ở trên bảng chính, đường dẫn đến dự án hiện tại có thể được sao chép, tất cả các biểu tượng được thay thế bằng những biểu tượng trông đẹp hơn với kích thước nhỏ của các phần tử, các biểu tượng của các trình duyệt đang chạy được thay đổi. Đã thêm khả năng chia sẻ dự án nhanh chóng - mở một dự án từ liên kết và tải lên Google Drive. Cửa sổ biên dịch dự án được cập nhật, nó trở nên trực quan hơn và tích hợp với đám mây. Giờ đây dự án có thể được cập nhật / tạo trực tiếp từ BAS, có thể tránh việc tạo một archive trong quá trình biên dịch.
Rất nhiều thời gian đã được dành để tìm kiếm và sửa lỗi với việc giải phóng bộ nhớ bị trì hoãn. Lỗi tồn tại trong suốt vòng đời của dự án và chỉ biểu hiện khi một vài trình duyệt hoạt động 10 giờ trở lên mà không khởi động lại. Mức tiêu thụ bộ nhớ tăng khoảng 5-10 mb mỗi giờ, sau một vài ngày làm việc liên tục, dự án trở nên không thể dùng được. Lỗi liên quan đến thư viện Qt, một phương pháp đã được tìm thấy để giải quyết lỗi này.
Tôi hy vọng rằng bạn sẽ thích phiên bản mới và nó sẽ hữu ích!