Sure. It's just the notion that HTTPS doesn't solve every security problem. It only solves the problem of securely copying data (transmitting) it from browser to server or vice versa.
A wag once said that HTTPS is like using an armored card to transfer money from someone who lives in a cardboard box to someone who lives under a bridge. In other words, it's the endpoints (the browser and the server) that are the weak links.
Great question! The certificate is signed by an authority that either (1) the browser trusts or (2) has a certificate that is signed by a trusted authority. So there's recursion and the browser literally does a depth-first-search to find a "chain of trust" to some authority that it trusts. (There are a handful of authorities that the browser trusts that are hard-wired into the code.) But that gets us a bit outside the scope of CS 304.
Glad to. Here's the question:
Ignore this question about external programs A. Your biggest worry is whether that program is malicious. B. Your biggest worry is allowing malicious data to be sent to that program C. Your biggest worry is allowing malicious data to be executed by the shell. D. Your biggest worry is that program producing malicious output.
Sometimes our Flask program needs some external program, say an image-manipulation program that creates a thumbnail or some fancy statistical package. (We haven't done that and we won't, but it's possible.) Since the shell has open-ended powers, giving access to all the programs on the machine, it's sometimes possible for a malicious users to trick it into executing a different program that we didn't intend.
The image-manipulation program is our choice, so it probably not malicious and probably hard to mis-use. But the shell....