Web / browser
set_canvas_toDataURL
set_canvas_toDataURL($toDataURL="",$jsChangeNoise=""); - Используется для смена Browser Canvas Finger Print (Доступна с версии 4.10.9)Функция на вход принимает параметры:
После отработки функция возвращает результат своей работы в скрипт, результат работы можно посмотреть здесь :
Пример использования (PHP):
===============================================================
<?php $xhe_host = "127.0.0.1:7019"; // подключим объект для управления эмулятором, если еще не подключен if (!isset($path)) $path="../../../Templates/xweb_human_emulator.php"; require($path); // начало echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>"; $browser->enable_fonts(false); //$raw->enable_all_streams(true); //$raw->add_disabled_response_url("canvas.js"); // 10 случаных canvas finger print for ($i=0;$i<2;$i++) { // 1 echo "1. Зададим информацию о экранном сенсоре : "; echo $browser->set_canvas_toDataURL("data : ".$submitter->generate_random_text(4168,1))."<br>";; // 2 echo "2. Перейдем на страницу для детектирвоания браузера : "; echo $browser->navigate("http://browserleaks.com/canvas",false)."\n"; $element->get_by_inner_text("Signature")->focus(); sleep(1); } // 3 echo "3. Зададим информацию о экранном сенсоре по умолчанию: "; echo $browser->set_canvas_toDataURL()."<br>"; // 4 echo "4. Перейдем на страницу для детектирвоания браузера : "; echo $browser->navigate("http://browserleaks.com/canvas",false)."\n"; // 5 echo "5. Через JS руками - задаем любые изменения : "; $js="for (var i = 1; i < height-1; i++) { for (var j = 1; j < width-1; j++) { var n = ((i * (width * 4)) + (j * 4)); imageData.data[n + 0] = imageData.data[n + 0] + 150; imageData.data[n + 1] = imageData.data[n + 1] + 150; imageData.data[n + 2] = imageData.data[n + 2] + 150; imageData.data[n + 3] = imageData.data[n + 3]; } }"; echo $browser->set_canvas_toDataURL(1,$js)."\n"; // 5 echo "6. Перейдем на страницу для детектирвоания браузера : "; echo $browser->navigate("http://browserleaks.com/canvas",false); // конец echo "<hr><br>"; // Quit $app->quit(); ?>
Пример использования (Python):
===============================================================
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7013" from xweb_human_emulator import * # начало echo("<hr><font color=blue>browser.xxxxxxxxx</font><hr>") browser.enable_fonts(false) raw.enable_all_streams(true) raw.add_disabled_response_url("canvas.js") # 10 случаных canvas finger print for i in range(0,9): # 1 echo("1. Зададим информацию о экранном сенсоре : ") echo(browser.set_canvas_toDataURL("data : "+submitter.generate_random_text(4168,1)),"<br>") # 2 echo("2. Перейдем на страницу для детектирвоания браузера : ") echo(browser.navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable"),"<br>") anchor.click_by_name("showFingerprintLink2") sleep(1) td.get_by_inner_text("Hash of canvas fingerprint",false).focus() sleep(7) browser.navigate("about:blank") browser.navigate("https://browserleaks.com/canvas",false) sleep(7) # 3 echo("3. Зададим информацию о экранном сенсоре по умолчанию: ") echo(browser.set_canvas_toDataURL(),"<br>") # 4 echo("4. Перейдем на страницу для детектирвоания браузера : ") echo(browser.navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable"),"<br>") anchor.click_by_name("showFingerprintLink2") sleep(1) td.get_by_inner_text("Hash of canvas fingerprint",false).focus() raw.enable_all_streams(false) # конец echo("<hr><br>") # Quit app.quit()
Пример использования (C#):
===============================================================
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server="127.0.0.1:7010"; InitXHE(); // начало echo("<hr><font color=blue>browser.set_app_info</font><hr>"); // 10 случаных canvas finger print for (int i=0;i<10;i++) { // 1 echo("1. Зададим информацию о экранном сенсоре : "); echo(browser.set_canvas_toDataURL("data : "+submitter.generate_random_text(10,1))+"<br>"); // 2 echo("2. Перейдем на страницу для детектирвоания браузера : "); echo(browser.navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable")+"<br>"); anchor.click_by_name("showFingerprintLink2"); sleep(1); td.get_by_inner_text("Hash of canvas fingerprint",0).focus(); sleep(7); browser.navigate("about:blank"); } // 3 echo("3. Зададим информацию о экранном сенсоре по умолчанию: "); echo(browser.set_canvas_toDataURL()+"<br>"); // 4 echo("4. Перейдем на страницу для детектирвоания браузера : "); echo(browser.navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable")+"<br>"); anchor.click_by_name("showFingerprintLink2"); sleep(1); td.get_by_inner_text("Hash of canvas fingerprint",0).focus(); // конец echo("<hr><br>"); app.quit(); } }
Пример использования (JS):
===============================================================
// подключим объект для управления эмулятором, если еще не подключен xhe_host="127.0.0.1:7022"; echo=require("../../../Templates JS/xweb_human_emulator.js"); // начало echo("<hr><font color=blue>browser.send_get_query</font><hr>"); // 10 случаных canvas finger print for (var i=0;i<10;i++) { // 1 echo("1. Зададим искажения в канвас : "); echo(browser.set_canvas_toDataURL("data : "+submitter.generate_random_text(10,1))+"<br>"); // 2 echo("2. Перейдем на страницу для детектирвоания браузера : "); echo(browser.navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable")+"<br>"); anchor.click_by_name("showFingerprintLink2"); app.sleep(1); td.get_by_inner_text("Hash of canvas fingerprint",false).focus(); app.sleep(7); browser.navigate("about:blank"); } // 3 echo("3. Зададим информацию о экранном сенсоре по умолчанию: "); echo(browser.set_canvas_toDataURL()+"<br>"); // 4 echo("4. Перейдем на страницу для детектирвоания браузера : "); echo(browser.navigate("panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable")+"<br>"); anchor.click_by_name("showFingerprintLink2"); app.sleep(1); td.get_by_inner_text("Hash of canvas fingerprint",false).focus(); // конец echo("<hr><br>"); // Quit app.quit();
=============================================
Browser Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.