Giter VIP home page Giter VIP logo

onionbrowser / onionbrowser Goto Github PK

View Code? Open in Web Editor NEW
2.2K 2.2K 433.0 115.16 MB

An open-source, privacy-enhancing web browser for iOS, utilizing the Tor anonymity network

Home Page: https://onionbrowser.com

License: Other

Objective-C 7.19% Ruby 0.26% Swift 39.86% Shell 0.69% C 0.18% HTML 51.82%
anonymity browser ios mobile mpl objective-c onion privacy security tor tor-network web-browser

onionbrowser's Introduction

Onion Browser

Backers on Open Collective Sponsors on Open Collective

Official Site | Support | Release History | Donate
© 2012-2023, Tigas Ventures, LLC (Mike Tigas)

This is the Onion Browser 3.X branch. The older versions of Onion Browser can be found here and here.

Onion Browser is a free web browser for iPhone and iPad that encrypts and tunnels web traffic through the Tor network with the help of Orbot iOS. See the official site for more details and App Store links.

Please see the LICENSE file for usage and redistribution terms.


Notable 3.X Features

The following features are new to Onion Browser, mostly by leveraging Orbot iOS:

  • Use of newer, more secure, faster rendering engine WKWebView.

  • Finally all traffic, including audio/video streams tunneled through Tor.

  • Everything downloadable now, including web pages.

  • Search in page from iOS 16 and up.

  • Multiple windows support on iPad.

Acknowledgements

These people helped with translations. Thank you so much, folks!

  • Albanian: Besnik, Kristina_Millona, alter2000, elioqoshi, vilisuli, marianaballa
  • Arabic: AboShanab, mada19, BNasr, Hujairi, MissPeace, ahmedessamdev, Bild96, Israel.K
  • Bengali: codesmite, Al_Shahrior, BNasr, hasan_md_rakib, nr072
  • Catalán: Ecron, pau.selles, Aetheria, Fitoschido, jmontane
  • Chinese (Simplified): Selinaf, feeblebiscuit, tsaizb, Lafrenze, ff98sha, 99yongliu, Lafrenze, chrisx8_, jxtsai
  • Chinese (Traditional): Selinaf, s8321414, jxtsai, MengPangWang, tsaizb, austinchang
  • Croatian milotype, paranatox
  • Czech: Plarome, Lumeriol, hernikplays
  • Dutch: SilverXp, biancahey, kwadronaut, pljmn, Meteor0id, ChillT, lucasz10
  • Finnish: PyryL, RJuho, olavinto
  • French: yahoe.001
  • German: Atalanttore, beonex1, nautilusx, ChristophSchulz, L10N, LordExtra, m_rey
  • Greek: dmaroulidis, KAUTH, pappasadrian, ssk1, apapac, arammos, beonex1, giormatsis
  • Hebrew: IONIL
  • Hindi: balapandu222, drashti4, umkdikshit, josprachi, libregeekingkid, philo_math, sonusandeep, suremak
  • Hungarian: benewfy, vargaviktor
  • Icelandic: anarchodin, sveinki
  • Indonesian: myusuffin, Kholidraf, Razmawardhana, andika, ic.debora77, icaldua, khrlzhfr, kiwed
  • Irish: kscanne
  • Italian: EllipticSet, Rhaal, RickDeckard, ryuw
  • Khmer: Cantaloupe, PisethKONG, mosesngeth, rasy, sokty, sophatchy
  • Korean: MinGyu19, jmj050716, sector429
  • Japanese: Naofumi, Songbogong, TokumeiNanashi, pluto987, jpanonowl, TENCO, kiririn
  • Macedonian: Liljana_Ackovska, Zarko_Gjurov, MatejMecka
  • Norwegian (Bokmål): kingu, eirik174
  • Persian: ariaa, arminoza, nariman, sabs, magnifico, Gilberto1, Zaefarani, alinbipr, hamidreza_yazdani, mo.hoseini, noneck, voxp, gonjayesh, koofi, nonecknoel
  • Polish: GEEZET1, Pihjun, tenderloin, weegoor, wiktoriatomzik
  • Portuguese (Brazil): flaviove, CypherZnnb, Bk__13, CRCF, darkcrystal, eduaddadbr, leovasone, nopum, vmattos, Communia
  • Portuguese (Portugal): manuelarodsilva, Bk__13, mrBatsu
  • Romanian: alex1lazar, libertatemes, tud0r
  • Russian: anm, dianazryn, emedvedev, Ifti, foxing29, neocaching, Pihjun, ZiPERR
  • Spanish: arielbarbosa, Maria_Jose, emmapeel, strel, zakooch, Aetheria, Fabiola.mauriceh, Fitoschido, kodachi, lenazun, nosense, supermigue2000, vareli, antonela_
  • Tatar: seber
  • Thai: bact'
  • Turkish:
    falcontr06, kayazeren, ali_demirtas
  • Ukrainian: Herenko, lyubomyr, MykolaBubelich, Kataphan, Pihjun, gr3ttle
  • Vietnamese: AshCopper, PMinhDuc, Shinigami

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

How to build yourself

Build instructions can be found in BUILD.md.

Further reading

https://tordev.guardianproject.info

onionbrowser's People

Contributors

fel1x-developer avatar geezet1 avatar ingfabby avatar isak-n avatar janpio avatar jcs avatar kosyloa avatar lucaslarson avatar mabaeyens avatar mikezs avatar monkeywithacupcake avatar mtigas avatar tladesignz avatar tsekityam avatar usernameisboris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onionbrowser's Issues

Certain Links not always responding

Not the same issue as having to relaunch the browser to reconnect after sleep issue.

Basically, I've noticed some links will not trigger when clicked on. Images, links to other sites, etc. for example, on an image board the navigation/pagination may work, but the images themselves don't. Press and holding will sometimes allow copy of link, at which point I can paste into address bar, however some clickable links don't even give that, preventing me from following that navigation entirely.
I'm insure what the problem is, and as yet have not found the connection between working links and non responsive ones.

iOS persists screen snapshot in multitasking switcher

After killing and reopening Onion Browser, iOS will still sometimes show a screenshot from a previous browsing session in the multitasking switcher.

This means that potentially sensitive information from the browsing session is being saved by the OS after a user could reasonably expect it to have been purged.

I found a StackOverflow answer on how to solve this but I am not an iOS programmer.

I am able to reproduce this consistently on iOS 7.0.6 using the following steps:

  1. Launch OnionBrowser, let it connect
  2. Browse to a site containing sensitive information
  3. Kill the app by double-tapping the home button and swiping up
  4. Launch OnionBrowser again
  5. Immediately double-tap and switch to a memory intensive app
  6. Continue launching memory intensive apps until OnionBrowser is no longer running
  7. The multitasking switcher image for OnionBrowser is the sensitive site.

This is especially easy to reproduce on an older device, such as an iPhone 4S running iOS 7, where only a few apps can run simultaneously.

Thank you very much for OnionBrowser, it is a fantastic piece of software for those concerned about anonymity.

App should poll Tor connection status

Would help alleviate #2 a bit — at the very least allowing user to know that our Tor client has somehow failed, at most providing us some way to maybe re-start Tor.

Complete work-around for video DNS- and/or other leaks?

Would it be possible to have a service where, to watch a video, a request is sent through Tor to a dedicated VPS-video-handler, which would download the video and stream it through Tor back to the OnionBrowser?

The DNS- and/or other leaks would merely point to the VPS. The VPS would not be aware of who's doing the requests, only that a video is requested, and its legal/privacy status would be somewhat similar to a Tor exit-node.

Such a service would of course be expensive, but possibly scalable as a $5/month service or less?

Would this be possible?

build on xcode 4.3

if xcode 4.3 on lion is installed, the dependency compiler scripts will fail.
make[1]: /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc: No such file or directory
make[1]: *** [cryptlib.o] Error 1
make: *** [build_crypto] Error 1

access to about/home pages cancels the connection process

When you use the central icon at the bottom and access the about page or the home page before the connection is complete, it seems to stop the connection process, leaving you with no other option than exiting, killing and restarting the app to perform a new connect.
Also, when you do so, the home page reads "Now connected" even if you are not connected at all.

Possible issue when compiling for iOS 6

Hey,
Not sure if I am doing something wrong, but I just did a build on my iPhone 4s iOS 6 and I keep crashing when ever I try to load a page.

Happens in the stimulator as well.
Notes:

  • no modified files
  • tried a fresh re-build from new files
  • tried on other mac
  • tried without the latest commits

Console output:
Jul 6 13:27:04 Jeramy-Simpsons-iPhone OnionBrowser[5257] : loading https://.onion/ URL, ignoring SSL certificate status (https://3g2upl4pq6kufc4m.onion/lite/)
Jul 6 13:27:04 Jeramy-Simpsons-iPhone OnionBrowser[5257] : [WebViewController] uncaught error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
Jul 6 13:27:04 Jeramy-Simpsons-iPhone OnionBrowser[5257] : -> NSURLErrorDomain
Jul 6 13:27:04 Jeramy-Simpsons-iPhone OnionBrowser[5257] : [WebViewController] Error: error The operation couldn’t be completed. (NSURLErrorDomain error -999.)
Jul 6 13:27:04 Jeramy-Simpsons-iPhone OnionBrowser[5257] : loading https://
.onion/ URL, ignoring SSL certificate status (https://3g2upl4pq6kufc4m.onion/lite/)
Jul 6 13:27:19 Jeramy-Simpsons-iPhone OnionBrowser[5257] : [ProxyURLProtocol] Got response 200: content-type: text/html; charset=UTF-8
Jul 6 13:27:19 Jeramy-Simpsons-iPhone OnionBrowser[5257] : [ProxyURLProtocol] parsed content-type=text/html, encoding=UTF-8
Jul 6 13:27:19 Jeramy-Simpsons-iPhone OnionBrowser[5257] : *** Assertion failure in -[CKHTTPConnection dealloc], /Users/jeramy/github/local/iOsOnionBrowser/OnionBrowser/OnionBrowser/../ConnectionKit/CKHTTPConnection.m:99
Jul 6 13:27:19 Jeramy-Simpsons-iPhone OnionBrowser[5257] : (null)

Any help/ides would be awesome

A few possible enhancements to Onion Browser

Hi, and thanks for making and maintaining such a great app!

I would like to suggest a few features to add to the app:

  1. Allow people to choose to configure bridges or directly connect to Tor before actually initiating the connection process, maybe through a dialog box popup.
  2. Lock/broken lock icon to signify if a HTTPS page has insecure content or not.

Regards,
John-Khart

A question about disabling the tor

I am working on a project to use onion to test ios web site. In some cases, we would like to visit website as a usual way , it means directly to visit the web not through ssh or tor. Is there an easy way to disable tor (like to comment some codes in the onion or something else) to visit web site as a usual way?

Thank you very much.

"New Identity" button clears history but visited links still get ":visited" CSS style

As the title says.

Browser history / cache / cookies get cleared, but visited links still receive a CSS highlight for ":visited" (purple by default). This could be subject to crafty attacks, but the original script-based attack of this leak does not appear work on iOS Safari — http://ha.ckers.org/weird/CSS-history-hack.html — visited links on this page get proper highlight but do not end up in the "visited" section as the JS attempts to do.

A warning message now shows up in the 1.2.6 version (should be available approx Sep. 12) when pressing the "New Identity" button.

More details in the following comments:


Original report:

Some links on some .onion sites seem to remain purple regardless of pressing "new identity" or indeed the complete deletion and reinstallation of the OnionBrowser.

I'm taking this as meaning there is some history being maintained?

update tor to 0.2.3.18-rc

…and double check patches (and update them to keep the offsets up to date).

0.2.3.17-beta introduced compiler and linker "hardening" (Tor ticket 5210) which has some issues with the iOS build chain (the -pie option and a few other things don’t work for iOS Device compilation) and it looks like there has been some continuing work on that.

.

Never mind please delete this

WKWebView support

There is a new API called WKWebView that supports JIT and is now the same on iOS and OS X. It also supports user scripts via WKUserScript which could be helpful.

I am considering creating some sort of TORWebView subclass of WKWebView that transparently supports Tor via OnionKit. Would you be interested in collaborating?

There is also a new API on iOS 8 that allows full VPN control via the NEVPNManager class. If many applications depend on Tor, it could be better from a security perspective to ship a Tor VPN that is maintained separately. My only concern would be that users might not want all of their phone's traffic going over Tor, only a few select applications.

Onion Browser can't save anything.

I feel like being in a dark net museum. You look, you don't touch !
Why is Onion browser the only browser in the apple store -- and the only browser I've ever met on any OS -- that allow you to browse but not to download anything? It's like walking in a super market and leaving empty handed. The Dark Net is a huge part of the whole internet and it's a real shame to discover interesting websites (everybody talk about guns, drugs and girls but illegal websites are a ridiculous part of what you can access there) without having the possibility to download any kind of file. The iOs menus are blocked. And except the "Copy" button, nothing works...
Really this app rocks but this limitation sucks. Everytime I need to download I use Vidalia back on the PC. Apple forbid you to implement a download button ? is it too complex to program ? More than the encryption and privacy part of your project ?! I'm looking forward for this cos' personnaly after 1.3.3 and 1.3.4 I don't think I'll buy any newer version that enable me to go fishing in deep sea without going home with some fish.
Thanks for the hard work. Good luck and please keep us informed wether it's an apple restriction or an improvement yet to come soon.

Dependencies silently fail to build without ccache

The libraries will download using the script, but never reach the compilation stage. Installing ccache from homebrew fixes the problem.

I imagine lines 74-81 of the build scripts are to blame, but I haven't looked into a fix yet.

Statically compressed files

Some webpages use statically compressed css files.

When visiting these sites with Onion Browser the CSS could not be loaded. I think in the defauls ios request loader there is a integrated decompress mechanism.

I tried to load the same webpage with a default UIWebview and it worked.

Best regards

Dominic

leaks information to Google Images search history

(1) Open Onion Browser (2) type 'https://google.com' (3) tap the Images link (4) tap in the search box (5) type a search term (6) tap Search (7) ##do stuff## (8) repeat 1-4 and the search history will show your previous search(es).

do stuff## includes navigating away from the page; choosing new identity; quitting and returning to Onion Browser; quitting Onion Browser, killing its task, and restarting it. It does seem to clear the search history if you power off iPhone.

Somehow, Google Images is able to track you through different identities and even killing/restarting the app, even with cookies disabled.

If choosing a new identity causes Google to redirect you to a country-specific page (eg. ...google.de), then the search history won't show up (but it's still there).

Browser settings:
block all cookies
no spoofing
pipelining enabled
no DNT header
not using bridges

Integrate Plugins/JS Applications to build new applications

Hi,

is it possible to integrate browser plug-in or JS Application (as main UI) within Onion Browser?

For example, it would be a really cool idea to use Onion Browser to package other applications that just need a web view and tor integrated.

For example it would be possible to integrate:

that both need to run as local javascript application, communicate with the web anonymous and use the web browser as their main UI.

Onion Browser may so became a base SDK to build Mobile Anonymized applications, much like the current goal of APAF (but for Desktop applications) http://github.com/globaleaks/APAF

What do you think about that possible direction of Onion Browser?

Bug: Hide user agent still reveals ipad details

The User Agent header still shows iOS 5.1.1 and iPad in the string. Anonymity websites do detect the browser as Mozilla, but you can still see traces from the old User-Agent. This would make for easy fingerprinting.

IP address

Developer note: (mtigas) Onion Browser occasionally fails to connect to Tor after app initialization. I (developer) have not been able to reproduce this issue, but have since added Tor Check on the start page (similar to how Tor Browser Bundle double-checks the Tor connection as it's homepage) for the benefit of users.


Original issue: (vinnyx)

When onion connects it congratultes me and states my IP address appears to be ____
However if I do an ip lookup using onion, it gives me my actual IP address. Which address is actually seen by sites.

[1.X][2.X] Connection occasionally times out and does not recover → app becomes unable to load sites

Workaround: Force quit app (tap home to quit app, double-tap home, hold down on app icon in tray, and "delete" app) and then restart app.


Hard to recreate issue when running app for more than a few minutes.

Seems to happen regardless of if app has gone into background or if network has gone up/down. (In fact, app does send HUP to Tor in those circumstances, causing Tor to reload & build new connections.)
#3 would help (and is related), but this is a more specific issue than that.

2.0: Use Tor.framework to decouple Tor build/run

(was "Decouple Tor management from AppDelegate" -mtigas)

It would be tremendously useful for other developers in this space if we could agree on a standard implementation for Tor on iOS that can be bundled more easily. I originally created OnionKit as a way to "library-ify" your Tor management code, but I'm not particularly happy with it and your socket-based solution might be better than Tor.framework's approach from a maintainability perspective.

The main changes that need to be made are removing the references to AppDelegate.h from TorController and TorWrapper so other projects can include this code without breaking their own apps. Down the road, moving the management code to a separate repo and shipping it as a library (or even better, a Cocoapod) would make it a lot easier for all of us to collectively maintain.

Exact problem that was fixed 1year ago in a closed thread-"New Identity" unusable on iPad3

I just purchased this app onto my iPad3. When I selected "New Identity", the screen "squeezed"over to the right and covered the icons in the toolbar below so that I cannot use them at all, and there is a big black empty space on the right side almost covering half of the screen. I read one of the closed threads and saw that one year ago, a couple people complained about this very same thing and that the problem was fixed. Is there a way to take care of this problem, or could I be missing something extremely obvious? (If this is the case, then I am sorry!!)

Enhancement: Add PCRE pre-processor of inbound HTML code.

Noticed in your comments that Javascript couldn't be disabled and that location tagging couldn't be disabled either. Perhaps a viable option would be to include PCRE into the mix (currently used in Safari, and may even be able to be used in the API) If you could run the inbound buffer through a series of Perl Regular Expressions to filter out things like script tags and such forth.

Crash when accessing site using self-signed SSL cert

Have tried using iOS 8.0.1 / 8.0.2 on an iPhone 5S, iPad 3 and iPad Mini 1st gen, to access my own web server which uses a self-signed SSL cert. An alert view pops up with the title "Cannot Verify Website Identity" with the buttons "cancel" and "continue" - however, when I tap on continue the app crashes.

I can email crash logs upon request.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.