it is a type of attack performed on web apps in order to carry out a malicious action without user's explicit consent.
these 'malicious actions' could be anything. for example: changing email address, personal information etc
No. token-based auth mechanisms are not vulnerable to as they are stored in either sessionStorage or localStorage.
however, token-based auth systems could be vulnerable to Cross-Site Scripting(XSS) attacks.
why vulnerable site treats CSRF requests as genuine actions?
that's because authentication is done through session and cookie(session-based auth mechanism). so, when the browser makes a request to the vulnerable (...cntd.)
.... web server(whether from the attacker's website or iframe, it does not matter), it sends the cookie as well. this makes the vulnerable server to think it as a genuine request.
* use CSRF token in forms
* double submit cookie strategy
* sameSite cookie (in server, `cookie.sameSite = 'strict'`)
* verifying legitimacy of the client (Origin and Referer headers)
caching is the process of storing data temporarily. a cache generally lives for a relatively small amount of time. examples: browser cache, DNS caching etc.
* save bandwidth (and reuse resources)
when using cache mechanism in client-side applications, it ensures that cached files won't be downloaded again from the server.
* save processing power
when writing algorithms, it could be optimized using a caching mechanism...
2/n
...caching would help add memorization to that algorithm, enabling it NOT to repeat the same calculations again and again.
* save time
we all visit websites mostly by domain names(and rarely using the IP address). having cached DNS records would let the resolver use...
3/n
Note to Self: MongoDB can be used with serverless functions by caching the initial connection.
database engines were designed much before the serverless architecture was a thing.
a connection to the database is always persistent. meaning, it lasts for a really long time.
also, there is a limit(imposed by DBaaS provider) on how many connections a database can have at any given timestamp.
a lambda function is invoked every time a client(generally, browsers) creates a connection. this means a new connection to the database as well.