より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

サニタイズされてるかテストするための「big-list-of-naughty-strings」

ソースレビューで

サニタイズしてますか?

あーっ! しまったー!

ということがありました。

新規でWebサービスを立ち上げると、アクセス数負荷とかこういう非機能要件を忘れてしまいますね。

そういう時に、こういうリポジトリがあります。

github.com

このリポジトリは、ツールというよりは、問題を引き起こす可能性のある文字列のリストです。

なので、これだけを入手したところではあまり意味がありません。

この文字列のリストを取得してWebサービスを呼び出す処理もしくはPuppeteerで自動UI操作は自分で実装する必要があります。

try {
     const data = fs.readFileSync("blns.json", "utf8");
     var naughtyJson = JSON.parse(data); 
     for (const naughtyString of naughtyJson) {
         // WebAPIを呼び出す
    }
}

javaScriptだと上記のようになりますが、javaScriptの場合、問い合わせるつもりが、問い合わせる前にjavaScriptが機能せず自爆する可能性があるため、私はC#を使って確認しました。

using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

namespace NaughtyRequest
{
    class Program
    {
        static async Task Main(string[] args)
        {
            foreach (var text in File.ReadLines("blns.txt"))
            {
                HttpClient httpClient = new HttpClient();
// example
                string url = $"https://www.google.com/search?q={text}";
                var httpResponseMessage = await httpClient.GetAsync(url);
                Console.WriteLine(httpResponseMessage.StatusCode);
            }
        }
    }
}