「STDを持っている」と言うのは正しい表現ですか?

正しい言い方は"Have you had an STD?"です。

「STD」は「sexually transmitted disease(性行為で感染する病気)」の頭字語です。英語では不定冠詞 an を付けて「an STD」と表現します。

ヒトパピローマウイルス(HPV) - 関連記事