1. A method for filtering data, the method comprising: receiving an incoming dataset at a firewall, the incoming dataset directed to a receiver device; receiving a pattern matching engine at the firewall, the pattern matching engine based on a plurality of scores, where each score of the plurality of scores is based on identification of a plurality of features within at least one string meeting user-defined bounds; classifying the incoming dataset into a first category of a plurality of categories based using the pattern matching engine; and determining whether or not the incoming dataset should be transmitted to the receiver device based on the first category.