mirror of
https://github.com/privacyguides/privacyguides.org.git
synced 2025-01-19 20:11:34 -05:00
Webrtc fix (#619)
* Remove webrtc.html * Replace webrtc.html with ipleak.net
This commit is contained in:
parent
958954f711
commit
e10fef5497
@ -606,9 +606,7 @@ layout: default
|
||||
|
||||
<!-- orange "Test your Browser now" button -->
|
||||
<p>
|
||||
<a class="btn btn-warning" href="webrtc.html">
|
||||
Test your Browser now
|
||||
</a>
|
||||
<a class="btn btn-warning" target="_blank" rel="noopener noreferrer" href="https://ipleak.net">Test your Browser now</a>
|
||||
</p>
|
||||
|
||||
<!-- heading: How to disable WRTC in Firefox? -->
|
||||
@ -636,9 +634,7 @@ layout: default
|
||||
|
||||
<!-- the "Test your Browser again" button -->
|
||||
<p>
|
||||
<a class="btn btn-primary" href="webrtc.html">
|
||||
Test your Browser again
|
||||
</a>
|
||||
<a class="btn btn-primary" target="_blank" rel="noopener noreferrer" href="https://ipleak.net">Test your Browser again</a>
|
||||
</p>
|
||||
|
||||
<!-- steps to manually disable WebRTC in Chrome -->
|
||||
|
141
webrtc.html
141
webrtc.html
@ -1,141 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
active_page: webrtc
|
||||
---
|
||||
|
||||
<div class="col-12">
|
||||
<div class="row">
|
||||
<div class="mx-auto text-center">
|
||||
|
||||
<h1><a href="https://www.privacytools.io/"><img src="assets/img/layout/logo.png" class="img-responsive" alt="privacytools.io"></a></h1>
|
||||
|
||||
<h2>WebRTC IP Leak VPN / Tor IP Test</h2>
|
||||
|
||||
<p>
|
||||
WebRTC is a communication protocol that relies on JavaScript that can leak your actual IP address from behind your VPN. While software like NoScript prevents this, it's probably a good idea to block this protocol directly as well, just to be safe. This page will test if your internet browser is affected by the <strong>WebRTC Leak.</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This demo secretly makes requests to STUN servers that can log your
|
||||
request. These requests do not show up in developer consoles and
|
||||
cannot be blocked by browser plugins like AdBlock, Ghostery, etc.
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
<strong>Your local IP addresses:</strong>
|
||||
<ul></ul>
|
||||
<strong>Your public IP addresses:</strong>
|
||||
<ul></ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>Your browser is not safe and will show your real IP even though you are using a VPN service if you can see your real IP addresses here.</p>
|
||||
|
||||
<p><strong><a href="https://www.privacytools.io/#webrtc">How to fix the WebRTC Leak?</a></strong></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>Source Code: <a href="https://github.com/diafygi/webrtc-ips" target="_blank">GitHub</a>
|
||||
<br>Script Version: Jul 20, 2015</a></p>
|
||||
|
||||
<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>
|
||||
<script>
|
||||
//get the IP addresses associated with an account
|
||||
function getIPs(callback){
|
||||
var ip_dups = {};
|
||||
|
||||
//compatibility for firefox and chrome
|
||||
var RTCPeerConnection = window.RTCPeerConnection
|
||||
|| window.mozRTCPeerConnection
|
||||
|| window.webkitRTCPeerConnection;
|
||||
var useWebKit = !!window.webkitRTCPeerConnection;
|
||||
|
||||
//bypass naive webrtc blocking using an iframe
|
||||
if(!RTCPeerConnection){
|
||||
//NOTE: you need to have an iframe in the page right above the script tag
|
||||
//
|
||||
//<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>
|
||||
//<script>...getIPs called in here...
|
||||
//
|
||||
var win = iframe.contentWindow;
|
||||
RTCPeerConnection = win.RTCPeerConnection
|
||||
|| win.mozRTCPeerConnection
|
||||
|| win.webkitRTCPeerConnection;
|
||||
useWebKit = !!win.webkitRTCPeerConnection;
|
||||
}
|
||||
|
||||
//minimal requirements for data connection
|
||||
var mediaConstraints = {
|
||||
optional: [{RtpDataChannels: true}]
|
||||
};
|
||||
|
||||
var servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
|
||||
|
||||
//construct a new RTCPeerConnection
|
||||
var pc = new RTCPeerConnection(servers, mediaConstraints);
|
||||
|
||||
function handleCandidate(candidate){
|
||||
//match just the IP address
|
||||
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/
|
||||
var ip_addr = ip_regex.exec(candidate)[1];
|
||||
|
||||
//remove duplicates
|
||||
if(ip_dups[ip_addr] === undefined)
|
||||
callback(ip_addr);
|
||||
|
||||
ip_dups[ip_addr] = true;
|
||||
}
|
||||
|
||||
//listen for candidate events
|
||||
pc.onicecandidate = function(ice){
|
||||
|
||||
//skip non-candidate events
|
||||
if(ice.candidate)
|
||||
handleCandidate(ice.candidate.candidate);
|
||||
};
|
||||
|
||||
//create a bogus data channel
|
||||
pc.createDataChannel("");
|
||||
|
||||
//create an offer sdp
|
||||
pc.createOffer(function(result){
|
||||
|
||||
//trigger the stun server request
|
||||
pc.setLocalDescription(result, function(){}, function(){});
|
||||
|
||||
}, function(){});
|
||||
|
||||
//wait for a while to let everything done
|
||||
setTimeout(function(){
|
||||
//read candidate info from local description
|
||||
var lines = pc.localDescription.sdp.split('\n');
|
||||
|
||||
lines.forEach(function(line){
|
||||
if(line.indexOf('a=candidate:') === 0)
|
||||
handleCandidate(line);
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
//insert IP addresses into the page
|
||||
getIPs(function(ip){
|
||||
var li = document.createElement("li");
|
||||
li.textContent = ip;
|
||||
|
||||
//local IPs
|
||||
if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/))
|
||||
document.getElementsByTagName("ul")[0].appendChild(li);
|
||||
|
||||
//IPv6 addresses
|
||||
else if (ip.match(/^[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7}$/))
|
||||
document.getElementsByTagName("ul")[2].appendChild(li);
|
||||
|
||||
//assume the rest are public IPs
|
||||
else
|
||||
document.getElementsByTagName("ul")[1].appendChild(li);
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user