-
Notifications
You must be signed in to change notification settings - Fork 22
Add report button to popup panel #86
Comments
I definitely have that in mind. |
if multiple people report a problem then a script can guess which list the problem is in. maybe also add a soft-off button that switches off every filter that is more prone to break something than others. |
Can someone help me investigate how the report button works in AdBlock / ABP / Adguard? |
Definitely the bug. It gives a clearer indication of the intended purpose. |
according to abp their report contains this so it sends what lists the user has activated. the user only gets asked if its a false positive or a false negative and if he wants to add a comment and an email. this is what the show report button says. i didnt inspect if abp is honest |
adguard offers more options like connection with github account, manual selection of filters and version, an option to mark the link as nsfw, a little troubleshooting in the beginning(have you updated your filters and disabled custom filters?) and requires a screenshot. it didnt have an option to show the source of the report. all this is already happening on a webinterface so some information already gets submitted to the server before sending the report. |
both send you through several steps to add information. none of them requires captchas. they might only do when you send too many reports. |
i think nano adblocker requires a different approach. all these adblockers use a narrow band of filterlists so it is easy for them to decide which list needs fixing. if you use 20 filters in nano and many people do then it will be hard to distinguish which list causes a problem(in the case of a false positive or a broken site). i suggest that nano blocker should give the option to debug the problem by intelligently switching of lists until the problem disappears. it should do this with not tool many steps(not one step for each activated list) to narrow down the problem without too much work. this would not be a 100% hit but rather a hint that it is one of a bunch of filters. but if multiple users report the issue and nano blocker choses different filters to deactivate for each user then you could detect the pattern on the server side |
I'll probably use a rate limiter, it's usually more effective than CAPTCHA. I don't think I have enough users to run a sophisticated algorithm on server side. So I'll start with a plain simple bug reporter. I can add more logic to deal with known / repeated cases later. Collecting test data is definitely going to help to narrow the problem down to one filter, although that does require quite a bit of work to implement properly, and 99% of the time just the test link will suffice. The vast majority of users won't add more than 4 or 5 filters than default. |
when you chose an issue tracker i suggest to use one that allows to have multiple projects and the possibility to move bugs between them. the idea is that filterlist maintainers could register to the tracker and work together to fix conflicts and to move filters to the list they fit in the best. this also allows to open a bug report even when it is not clear yet which list it should belong to and move it once that has been figured out. |
Do you have a recommendation? |
not, really. i dont know much more from the systems than you do from reporting a few bugs. there is an overview on wikipedia https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems but it doesnt inform you about most of the features. if you cannot find one that has all of the features they might exist as plugins. if they dont, i think it is still easier to write a plugin yourself than to start a whole new system from scratch. for the domain grouping you can maybe use some auto merging functionality if it exists. so the first user to report a domain creates an issue and all following get merged as comments. btw, cant you just send the User Agent as part of the report? the user doesn't have any interest in faking it and if he had he could do anyway. if it is for the rate limiting i think this is better done by the webserver. |
I need a really fast and efficient system to minimize server costs, and it needs to run on Debian, Windows is not acceptable, which rules out .NET, Python, Ruby, Perl, and PHP. Which means the only languages left are: JavaScript, Java, and Go. C and C++ are also OK although I don't think anyone use them to write web apps. Since I probably have to modify it, it needs to be open source and probably in JavaScript. Looking thought the list, none seems to fit my needs. I think I probably have to write my own web app for it.
That's my plan, although I need the server to parse it in order to sort the reports.
Well, the bug tracking system is done by the web server as well. I'm not sure what you mean. |
Python, Ruby, Perl, and PHP run very well on debian. i find it rather odd using them on windows or use windows for hosting at all. even .NET is possible on linux to some degree with MONO or .NET Core. the other languages are a bit odd except from js in the form of Node.js but i do not see any reason why to limit on any language except from personal preference. i dont think a decently written issue tracker easily causes performance problems. its a rather low volume application. the choice and configuration of the webserver is more important if at all. i dont think people having conversations is a huge deal. web forums do exist and they are only about conversation. if its really a big concern then host in a more freedom of speech friendly country.
there are methods to limit access through the webserver config that block ddos or misuse before it even hits serverside scripting. |
Node.js is 50 times faster than Python, I can't afford running a Python server. I don't want a tracker that's only good for low volume. It really doesn't matter how well your software is written, if it's in Ruby it WILL be slow beyond reason. It's not about freedom of speech, it's about when someone post illegal stuff, the responsibility for distributing that illegal material that is on the host.
Example? |
really? they are both interpreted languages and you can increase speed a lot with things like cython. in most countries the responsibility is not on the host. you are just obliged to delete when being asked to but you can get around this by just not allowing uploads. just let people use an image hoster for screenshots.
in apache you can do it with mod-security or mod-ratelimit for example and there is also the option of reverse proxies which however cost money but also protect you from ddosing. |
maybe you could work together with collinbarrett from https://github.com/collinbarrett/FilterLists in this who if i remember correctly also has ideas to streamline filterlist reporting. |
JavaScript can be interpreted, just like C++ can be interpreted. JavaScript can be compiled to machine code, Python as well, however, the JIT compiler of Python, PyPy, comes close to V8, the JIT compiler of JavaScript, but still fall short by a good chunk. Apache isn't an option, it's too easy to take down the server with Slowloris, even with We have a really tight budget, so anything that cost extra money isn't an option. I need something that is blazing fast even on really tight memory (512MB including OS). 10 requests per second is definitely unacceptable, let's start with 10 000 per second per core. |
Currently the server costs $5 per month, which is quite a bit, if Vultr's $2.5 server can handle the new web app, I'll move over. If I get DDoSed, I'll just turn off my server and wait it out. DDoSing costs lots of money and there isn't a reasonable way for me to defend that, although I need to be resistant to plain DoS.
Ping him over? |
@jspenguin2017 maybe C1 |
4 ARM Cores... Eh... From my past experience, 1 true x86 core smokes 4 ARM cores' pants off. |
I think most people won't bother running though 8 whole steps. That's not better than asking them to come to GitHub. |
Scaleway does look promising in term of bandwidth, although the computing power is kind of bad, 4 ARMv7 cores sounds like a lot but in reality it's nothing. I suspect they'll suspend people who serve massive amount of data out of their datacenters. From quick calculation, you can pump out 50 TB worth of data in the month, there is no way for them to be able to accept that. Alright, my decision is set, I'll write a new lightweight minimalist reporting end point and get this started. Nothing that exists fits us well. |
@jspenguin2017 what your think about that |
2 cores, but not 2 functional cores, according to reviews. |
I don't know what kind of UI you have in mind but I think adding links to forums.lanik.us and NanoFilters repo will good (and NanoCore if you want people to know where to report bugs about the extension). |
creating an account for a single report is too much for most people and i can understand it. i have a dozen accounts on bugtrackers that i just made for a single thing. |
Which machine learning library is best for the bug reporting end point? Any recommendation? |
for spam report - yes |
choose the one you know best |
If I have not mistaken, Adguard's report button is thumb down. It kind of make sense... |
Different machine learning algorithms definitely will make a huge difference. I'm thinking of starting with a naive logic and train an AI on the side and see how far that goes... |
OK, how about this:
|
but people should be able to submit more complex information if they want to in the quick reporter too. sometimes problems are only visible under certain conditions. |
Quick reports are handled by a bot (either hard coded logic or machine learning), I will accept more info, although how the bot will handle that is another question. If you want to fill a detailed report, just come to GitHub. |
I feel like the current server design isn't the best, the database handling isn't ideal... I think I should spend the time fixing the misdesign instead of keep building on something that's not scalable. I need to implement proper async and make the database not based on JSON. I also have some technical difficulties with my other tools. I built them with Electron thinking it is cross platform but apparently they won't work on Ubuntu. There are like 5 bug reports open in their repo since December and no one seems to care. It's too slow anyway so I guess I should start learning Qt. If anyone has ideas for small but useful features please let me know, it's been a while since last feature release. |
i dont know what you use a gui for but i suggest to consider wxwidgets. it is a metatoolkit that renders the application in the native toolkit that the platform offers (gtk on linux but experimental qt support also exists) |
I think I know how to design the bug report server now. I'll go with Adguard's approach and use GitHub issues tracker as the tracking engine. |
As you may already noticed, Nano Defender has a bug report button for some time now, it's just a matter of copy-pasting the code over, but there are a few problems to be sorted out first:
|
OK, GeoIP system is up now. We should be ready to roll out the report button soon. Ideally I want to have a front end server to bounce bad reports, and have a back end server to handle the rest. This way, I can code more aggressively on the front end server; if I accidentally coded a vulnerability, the damage would be limited. |
an outdated extension should not make the button invisible though. rather trigger an update or ask for it. |
There is no easy way for the extension to know whether it is outdated. If it is outdated, the server will simply reject the report. |
It's almost ready! https://github.com/NanoMeow/IntegrationServer
I think I should have the server simply flag invalid urls but not reject them, when I'm sure it's working properly I can switch on the aggressive rejection mode. |
Let's just ship the beta in both extensions, what can possibly go wrong? I'll worry about the new report server later. |
With filters, the problem is that, if one of the lists it will break down. people turn off adblock on this site.
Nobody submits broken pages to the authors of the lists.
The problem is getting worse, for example, the last incident with the mbank
https://www.wykop.pl/link/4094131/brak-mozliwosci-zalogowania-do-mbanku-z-wlaczonym-ublockiem/
i think you can add a button to report broken site centrally for filters maintainers
example.
The text was updated successfully, but these errors were encountered: