フォーム入力データのhtmlエンティティ化とDB登録についてなんですが、
ちょっとパニクってきました。
アドバイスいただければ嬉しいです。

・流れ
入力画面→確認画面→完了画面と遷移します。
入力画面で入力したデータをPOSTで確認画面に、確認画面から完了画面へは
hiddenフィールドで渡します。(完了画面でDB登録)
入力修正のときは、確認画面のhiddenフィールドに入力データを入れ、入力画面にデータを戻します。
(入力画面では、そのデータを受け、初期表示に利用)

良く分からないのは、

・hiddenフィールドにもhtmlspecialcharsをかました方が良いんでしょうか?
 例えば、<input type="hidden" name="memo" value="<?=htmlspecialchars($memo)?>">
 phpのマニュアルでは、セキュリティ上、hiddenにかましているようなのですが。。。

・その場合、hiddenから受け取ったデータはhtmlエンティティ化されますが、
そのデータをそのままDBに登録するのはどうなんでしょうか?
 例えば、&などは「&」の形で登録されちゃいますが。。。
いろいろ調べてみましたが、DB登録時には、なるべく素のデータを登録するのが、
 望ましいという記事もあり、迷っています。

それとも、hiddenでデータ受け渡しするんでなく、セッションを使うべきなのでしょうか?