On Wednesday, April 8, 2020 at 4:11:05 AM UTC+2, Dima Pasechnik wrote:
>
>
>
> IMHO this is not exposing the server to "open internet", this is 
> allowing your client machine (at home), and only it (using "bind 
> addess), to access your server --- which, normally speaking, is behind 
> a firewall that does not allow any connections to it, expect perhaps 
> on the ssh port. 
>
> cf. https://www.ssh.com/ssh/tunneling/example 
>
>
I agree, but I said "generally speaking," though I admit the inference was 
there, sorry about that. If Markus' one-liner is not in the installation 
docs, it should be, I think.  In any case, the docs are not for people who 
would get it right on their own, but for the others.

As I see it, the larger issue is that web applications need to have a web 
server embedded simply because they want a browser for a front end, just as 
they used a terminal in the old days. Admittedly the Jupyter developers 
have gone to some length to account for the possibility that their server 
would be used alone over the internet, supporting encryption in particular.

Speaking generally again, at least according to my reading, best practices 
are unequivocal: one should not use the web application's embedded server 
other than locally, i.e. when the browser is just a terminal. The idea is 
for application developers to concentrate on the application, and server 
developers to concentrate on the interaction with the internet. The only 
front ends considered internet-capable in this context are Apache, 2/3 of 
implementations, and nginx, 1/3.

For the case at hand, I am the first to admit that my solution is overkill. 
The reason is that the "attack surface" is very small, especially if (I 
repeat) one shuts down the Sage server after each session. A good idea 
would also be to approach it with a dedicated browser instance, to prevent 
cross-site scripting attacks. Also, with a universal web server comes the 
possibility of seriously misconfiguring it. It is a bit like that old 
question about memory management, is it too important to leave to the 
compiler, or too important to leave to the programmer?

So I rest my case, repeting the question: does it make sense to write such 
a doc, or not?

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/579275cf-626d-4c35-8483-a85721a4c92b%40googlegroups.com.

Reply via email to