
Python Microservices Development

In the previous section, we've looked at how to set up a simple WAF. The rate limiting feature we've added is useful but protects us from just one possible attack. Without being paranoid, as soon as you are exposing your app to the world, there are numerous possible attacks, and your code needs to be designed with that threat in mind.
The idea behind secure code is simple, yet hard to do well in practice. The two fundamental principles are:
Let's look at how to implement these principles in practice.
The first principle, assert incoming data, just means that your application should not blindly execute incoming requests without making sure what will be the impact.
For instance, if you have an API that will let a caller delete a line in a database...