Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <h3>Focus first on sensible security measures</h3> <p>We have an application deployed widely (US and Europe) and it relies on several simple principles</p> <ul> <li><p>All communication is over HTTPS to prevent man-in-the-middle attacks</p></li> <li><p>All users (or apps in your case) have a username and password which is used to verify identity - verification is over HTTPS</p></li> <li><p>Verified users get a time-limited session-key which forces a re-verification when it expires</p></li> <li><p>The sys admin can revoke any session at any time </p></li> <li><p>All invalid logins are tracked and alerts sent to the sys admin so we can see an attack in progress.</p></li> </ul> <p><br></p> <h3>Restful Authentication</h3> <p>Our app has a REST-style API which the remote UI uses as do third-parties (SAP / Excel ...). The REST aspect is pretty much orthogonal but we do use a Ruby RESTful authentication module. The key learning is that sessions are resources which can be created and destroyed by action on the /sessions set of resources. The session maps a client (user or app) to an authenticated session.</p> <p>A nice article on the background to RESTful authentication can be found <a href="http://www.berenddeboer.net/rest/authentication.html" rel="nofollow noreferrer">here</a>. I particularly like this extract ...</p> <blockquote> <p>Authentication is one of the hardest issues when developing software. Because if you got even one bit wrong, your solution is no longer secure. And your reputation may go down with it. So why do web developers insist on developing their own security? Why not use HTTP authentication which is probably far more secure than most programmers will ever be able to develop themselves?</p> </blockquote> <p>There are some good resources already in Stackoverflow. Take a look <a href="https://stackoverflow.com/questions/319530/restful-authentication">here</a> for example</p> <p><br></p> <h3>Implementing HTTPS</h3> <p>You are probably pretty much aware of what you need for HTTPS</p> <ul> <li><p>A cert - we use GoDaddy - dreadful web site but pretty cheap and reliable. We use a global cert to cover our whole domain</p></li> <li><p>A web server which can handle HTTPS - all of them these days, we use NGINX because it is fast, reliable and easy to configure</p></li> <li><p>Appropriate client library which can handle HTTPS connections</p></li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload