I want to create a web application firewall from scratch. I am going to use machine learning to train it to classify malicious and clean queries. My dilemma is that I am a beginner and am unable to choose which language to code it n and also should I make it a reverse proxy or as a server plugin?

closed as off-topic by Steffen Ullrich, TheJulyPlot, WhiteWinterWolf, Jedi, Xander Jul 30 '17 at 17:00

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question does not appear to be about Information security within the scope defined in the help center." – WhiteWinterWolf, Jedi, Xander
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    For the security aspect of your problem it does not matter which language you use or if you implement it as a reverse proxy or server plugin, i.e. both architectures make blocking and changing of traffic possible and can be implemented in a variety of languages. And Non-security aspects are off-topic here. – Steffen Ullrich Jul 30 '17 at 7:06

It is an idea that everyone in security is hoping to solve sooner and better than the others! Of course there are also people who say it's an overkill for a WAF. But hey, All the best! :)

  1. unable to choose which language to code it in

I'll assume that you did study ML (not just read about it) - in which case you may have used some ML libraries and done some coding. If your milestone goal is to get a working prototype / POC, you should just choose the language that you used while learning. This is a challenging project and you don't want to add "learn a new language" to the list of challenges.

  1. reverse proxy or server plugin

Again, choose what you are familiar with. That will get you soonest to the goal of a minimum viable product (MVP). e.g., When we developed our product ActiFend, our development team was already familiar with WordPress Plugins, so for an MVP, we chose that path - and got something to show in weeks instead of months. It's another matter that we got stuck there for a long time now (scope creep), but if I were to choose again with hindsight, I'd do the same.

It won't matter whether you are just a one-person-army doing this or you have a large team. As an Agile practitioner and evangelist - I say: get something small working ASAP.

Not the answer you're looking for? Browse other questions tagged or ask your own question.