New Feature - Report URLs
Lately, I have received relatively few requests with potentially bad URLs. On the one hand, that could be because ClearURLs are working very well by now. But I also think that not everyone wants to sign up to GitLab to report a URL. That's why I've added a new button that reports the current URL in the active tab to me, so I can take a closer look at the URL. So that you can see exactly what data will be sent to me, I have uploaded the source code for the PHP script, of course, without a password etc. Please be careful not to send URLs with personal information or tokens.
This commit is contained in:
parent
dd3bbac0ba
commit
64ed933361
|
@ -154,6 +154,16 @@
|
|||
"description": ""
|
||||
},
|
||||
|
||||
"popup_html_report_button": {
|
||||
"message": "Aktuelle URL melden",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"popup_html_report_button_title": {
|
||||
"message": "Meldet die aktuelle URL aus diesem Tab.",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"core_save_on_disk": {
|
||||
"message": "[ClearURLs]: Auf Festplatte gespeichert.",
|
||||
"description": ""
|
||||
|
@ -217,5 +227,20 @@
|
|||
"setting_types_label": {
|
||||
"message": "<a href='https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType' target='_blank'>Request types</a> (Expertenniveau)",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"setting_report_server_label": {
|
||||
"message": "Meldungsserver für URLs",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"success_report_url": {
|
||||
"message": "Die URL wurde erfolgreich gemeldet. Wir werden sie in Kürze prüfen.",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"error_report_url": {
|
||||
"message": "Es schaut so aus, als ob diese URL schon gemeldet wurde.",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
|
|
|
@ -154,6 +154,16 @@
|
|||
"description": ""
|
||||
},
|
||||
|
||||
"popup_html_report_button": {
|
||||
"message": "Report current URL",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"popup_html_report_button_title": {
|
||||
"message": "Report the current URL from this tab.",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"core_save_on_disk": {
|
||||
"message": "[ClearURLs]: Save on disk.",
|
||||
"description": ""
|
||||
|
@ -217,5 +227,20 @@
|
|||
"setting_types_label": {
|
||||
"message": "<a href='https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType' target='_blank'>Request types</a> (expert level)",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"setting_report_server_label": {
|
||||
"message": "Report server for URLs",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"success_report_url": {
|
||||
"message": "The URL was successfully reported. We will check this URL soon.",
|
||||
"description": ""
|
||||
},
|
||||
|
||||
"error_report_url": {
|
||||
"message": "It seems like this URL has already been reported.",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
|
|
15
clearurls.js
15
clearurls.js
|
@ -11,6 +11,7 @@ var siteBlockedAlert = 'javascript:void(0)';
|
|||
var dataHash;
|
||||
var localDataHash;
|
||||
var os;
|
||||
var currentURL;
|
||||
|
||||
var storage = [];
|
||||
|
||||
|
@ -580,6 +581,7 @@ function start(items)
|
|||
{
|
||||
delete badges[tabId];
|
||||
}
|
||||
currentURL = tabInfo.url;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -592,6 +594,9 @@ function start(items)
|
|||
*/
|
||||
function handleActivated(activeInfo) {
|
||||
tabid = activeInfo.tabId;
|
||||
browser.tabs.get(tabid).then(function (tab) {
|
||||
currentURL = tab.url;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -840,6 +845,7 @@ function initSettings()
|
|||
storage.hashURL = "https://gitlab.com/KevinRoebert/ClearUrls/raw/master/data/rules.hash";
|
||||
storage.ruleURL = "https://gitlab.com/KevinRoebert/ClearUrls/raw/master/data/data.json";
|
||||
storage.types = ["main_frame", "sub_frame", "xmlhttprequest"];
|
||||
storage.reportServer = "https://clearurls.xn--rb-fka.it";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -875,3 +881,12 @@ function isEmpty(obj)
|
|||
{
|
||||
return (Object.getOwnPropertyNames(obj).length === 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current URL.
|
||||
* @return {String} [description]
|
||||
*/
|
||||
function getCurrentURL()
|
||||
{
|
||||
return currentURL;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@ var badgedStatus;
|
|||
var hashStatus;
|
||||
var loggingStatus;
|
||||
var statisticsStatus;
|
||||
var currentURL;
|
||||
var reportServer;
|
||||
|
||||
var core = function (func) {
|
||||
return browser.runtime.getBackgroundPage().then(func);
|
||||
|
@ -26,6 +28,8 @@ function getData()
|
|||
hashStatus = ref.getData('hashStatus');
|
||||
loggingStatus = ref.getData('loggingStatus');
|
||||
statisticsStatus = ref.getData('statisticsStatus');
|
||||
currentURL = ref.getCurrentURL();
|
||||
reportServer = ref.getData('reportServer');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -174,6 +178,7 @@ $(document).ready(function(){
|
|||
changeSwitchButton("statistics", "statisticsStatus");
|
||||
$('#loggingPage').attr('href', browser.extension.getURL('./html/log.html'));
|
||||
$('#settings').attr('href', browser.extension.getURL('./html/settings.html'));
|
||||
$('#reportButton').on("click", reportURL);
|
||||
setText();
|
||||
} else {
|
||||
$('#config_section').remove();
|
||||
|
@ -202,6 +207,7 @@ function setText()
|
|||
injectText('configs_switch_filter','popup_html_configs_switch_filter');
|
||||
injectText('configs_head','popup_html_configs_head');
|
||||
injectText('configs_switch_statistics','configs_switch_statistics');
|
||||
injectText('reportButton', 'popup_html_report_button', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -237,3 +243,19 @@ function translate(string)
|
|||
{
|
||||
return browser.i18n.getMessage(string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send the url to the DB on clearurls.röb.it to checked for tracking fields.
|
||||
*/
|
||||
function reportURL()
|
||||
{
|
||||
$.ajax({
|
||||
url: reportServer+'/report_url.php?url='+encodeURI(currentURL),
|
||||
success: function(result) {
|
||||
window.alert(translate('success_report_url'));
|
||||
},
|
||||
error: function(result) {
|
||||
window.alert(translate('error_report_url'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ function save()
|
|||
ref.setData('ruleURL', $('input[name=rule_url]').val());
|
||||
ref.setData('hashURL', $('input[name=hash_url]').val());
|
||||
ref.setData('types', $('input[name=types]').val());
|
||||
ref.setData('reportServer', $('input[name=report_server]').val());
|
||||
ref.saveOnExit();
|
||||
ref.reload();
|
||||
});
|
||||
|
@ -76,6 +77,7 @@ function getData()
|
|||
settings.rule_url = ref.getData('ruleURL');
|
||||
settings.hash_url = ref.getData('hashURL');
|
||||
settings.types = ref.getData('types');
|
||||
settings.reportServer = ref.getData('reportServer');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -98,4 +100,6 @@ function setText()
|
|||
$('input[name=types]').val(settings.types);
|
||||
$('#save_settings_btn').text(translate('settings_html_save_button'));
|
||||
$('#save_settings_btn').prop('title', translate('settings_html_save_button_title'));
|
||||
$('#report_server_label').html(translate('setting_report_server_label'));
|
||||
$('input[name=report_server]').val(settings.reportServer);
|
||||
}
|
||||
|
|
|
@ -133,12 +133,19 @@
|
|||
<div class="col-sm-1">
|
||||
<div class="text-center">
|
||||
<a type="button" id="loggingPage" target="_blank"
|
||||
class="btn btn-default btn-sm btn-block">
|
||||
</a>
|
||||
class="btn btn-default btn-sm btn-block"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<div class="row" id="report_section">
|
||||
<div class="col-sm-1">
|
||||
<div class="text-center">
|
||||
<a type="button" id="reportButton" target="_blank"
|
||||
class="btn btn-warning btn-sm btn-block"></a>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -62,6 +62,11 @@
|
|||
<input type="text" id="types" value="" name="types" class="form-control" />
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<label id="report_server_label"></label><br />
|
||||
<input type="text" id="report_server" value="" name="report_server" class="form-control" />
|
||||
</p>
|
||||
<br />
|
||||
<p class="text-center">
|
||||
<button type="button" id="save_settings_btn"
|
||||
class="btn btn-success" title="Save the settings"></button>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"manifest_version": 2,
|
||||
"name": "ClearURLs",
|
||||
"version": "1.3.3.11",
|
||||
"version": "1.3.3.12",
|
||||
"author": "Kevin R.",
|
||||
"description": "Remove tracking elements form URLs.",
|
||||
"homepage_url": "https://gitlab.com/KevinRoebert/ClearUrls",
|
||||
|
|
35
server/report_url.php
Normal file
35
server/report_url.php
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
$servername = "...";
|
||||
$username = "...";
|
||||
$password = "...";
|
||||
$dbname = "...";
|
||||
|
||||
if(isset($_GET['url'])) $url = urldecode($_GET['url']);
|
||||
else http_response_code(404);
|
||||
|
||||
if(!empty($url) && filter_var($url, FILTER_VALIDATE_URL))
|
||||
{
|
||||
$hash = md5($url);
|
||||
|
||||
// Create connection
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
// Check connection
|
||||
if ($conn->connect_error) {
|
||||
http_response_code(505);
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO reports (hash, url) VALUES ('$hash', '$url')";
|
||||
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
http_response_code(200);
|
||||
} else {
|
||||
http_response_code(500);
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
else {
|
||||
http_response_code(505);
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user