Comments (3)
The way I conceptualise it is that we are breaking the contract of the Web Browser in that the Web Browser is a heavily protected sandbox for accessing webpages. This also means that we rely on the browser to protect us against potentially malicious code being run by web pages by keeping it inside the sandbox.
Part of the reason we have killed off ActiveX, Java, Flash, etc over the years is that they consistently broke this contract and made web browsing dangerous for users.
That's not to say our current situation is perfect, even when restricted to webpages, there is ample opportunity to attack internal services via HTTP.
I don't think alerts / pop ups / warnings / etc are the way forward here either, most major web browsers have resorted to essentially hiding the "ignore" option from their giant red warning pages to stop people blindly clicking through them and getting attacked. This functionality doesn't seem like it would benefit majority of web users and exposing it to them may increase the chances they click through any warning box because they "just want the website to work". In the event that it does become mainstream raises real questions about why we are allowing websites to invent their own standards for communications when browsers exist for the standardisation that is HTTP etc.
On the flip side, I definitely see the advantages of using web browsers as a distribution mechanism and GUI platform for general software (which is what we are basically enabling by providing these lower level features), and it would be interesting to see it used as such. But I don't think we should be catering to the needs of those with more advanced use-cases at the cost of the security of majority of users who just want to be able to browse websites.
One way forward perhaps would be to make it a configuration option that must be enabled in the first place. On the other hand as I type this, I can already foresee websites showing "please enable this feature" banners to get users to bypass this step. See also: every macro enabled phishing document.
(This comment should potentially live on #1 rather than here >_>)
from direct-sockets.
Is this suggesting that web developers should not be trusted to write secure code, so we should stop the Raw Sockets proposal? It's the same problem any non-web app author has, right?
Do you have a proposal on how to improve it to make it more secure for web developers, other than canceling the API?
This API would be extremely useful and helpful for a wide variety of cases.
from direct-sockets.
Is this suggesting that web developers should not be trusted to write secure code, so we should stop the Raw Sockets proposal?
No, it's suggesting that an attacker can intentionally write insecure code and as a result access arbitrary ports on the client.
from direct-sockets.
Related Issues (20)
- IPv6 zone index handling
- Huge P2P Potential HOT 2
- Backend uses in Chrome Headless HOT 3
- Current status? HOT 25
- General explainer review
- Explainer should explain the API design choices
- Specification is missing normative content
- Suggestion: condition this on a web permission + CSP + CORS + explicit permissions request to provide a strong layer of security HOT 2
- How to play with the API? HOT 16
- Create a ReadableByteStream for TCP sockets HOT 2
- constructor() method buffer sizes HOT 1
- no way to control IPv4 or IPv6 hostname resolution HOT 2
- dynamic socket settings
- support for setting IP_TOS
- keepAliveDelay setting: milliseconds vs boolean HOT 2
- Support connectionless UDP sockets HOT 1
- Support TCP server sockets HOT 1
- Question regarding allowHalfOpen Option HOT 2
- What is the concern with CORS? HOT 1
- Define high trust mode HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from direct-sockets.