2016-04-04 14 views
-1

リーチやシーブのようなウェブサイトでは、個人的に使用する特定のページをどのように作成しますか? 例: http://en.lichess.org/fdnenTEJ
http://shrib.com/uaR3EKNBc8d4OdI 彼らは新しいHTMLページに関連付けられている固有のIDパスを生成します。URLに入力されたパスからhtmlファイルを作成する方法

これをノードjsアプリケーションに実装するにはどうすればよいですか?この質問は非常に幅広く曖昧ですが、このようなシステムがどのように機能するのかを簡略化しておきたいと思います。

答えて

1

ユニークになるまでrandom stringを作成し、データベースに追加します。ランダムな文字列がパラメータになるように要求を照合し、データベースクエリで使用します。

データベースIDをbase62またはbase64として単純にエンコードすることもできます。これは悪い、悪い考えであり、セキュリティに敏感です。

EDIT:

app.get('/:tokenstring', function(request, response, next) { 
    // ... 
}); 
+0

なぜそれがbase62やBASE64などのIDをエンコードする悪い考えですか? – honerlawd

+0

もう少し詳しいことはありますか?私はランダムな文字列を生成する方法と、それをSQLデータベースに追加する方法を理解していますが、ランダムな文字列がパラメータになるように一致する要求をどういう意味ですか? –

+1

@honerlawd内部ロジックをクライアントにリークします。それは問題である必要はありませんが、あなたが慎重でないと簡単に問題になることがあります。 URLのIDフィールドを変更するだけで、ユーザーのプライベートデータを見ることができる多くの例があります。例えば。 'bank.com/user/123/transactions'を' bank.com/user/124/transactions'に変更しました。これは決して可能ではありませんが、開発者は完璧ではなく、このようなことが起こります。 –

関連する問題