🙂
サイトがLaravelで作られているか特定する方法
結論
PHP向けWebアプリケーションフレームワークLaravelでサイトが作られているか判断するには、Cookieとしてセットされるそれぞれの項目の値の先頭に eyJpdiI6I
があるか、あればLaravelでできているとわかる。
なぜか
たとえば、セッションIDが
eyJpdiI6Im91STU5ZWMrY1NBYTFKaUczb3I4U0E9PSIsInZhbHVlIjoiOTd4ZnNweGFNbW9rZXJaTzVoeGhadzFWM0RFa3pTTUR1aG5qaFp4QVFMMTlvWFd0cXV1TUYxZDlSeUlqdHBjRFU3SVNzKzJiQ2gxakZuMFRENWRUV2JtMWpCUUZaUlZidmVtN25SUlNTR3NKYit6ZC9YOVMxdHgxSElhTVZTV2siLCJtYWMiOiIwN2I2OGE4ZjUyNjgyZDgwZDFmZWJkMDdjZmNhMGQ3MDg0MzI0MmEyNzY4YTkyNTYyOWUwY2ZmMmZhZTE1MGVmIiwidGFnIjoiIn0
だったとする。
これをBASE64デコードすると、
{
"iv": "ouI59ec+cSAa1JiG3or8SA==",
"value": "97xfspxaMmokerZO5hxhZw1V3DEkzSMDuhnjhZxAQL19oXWtquuMF1d9RyIjtpcDU7ISs+2bCh1jFn0TD5dTWbm1jBQFZRVbvem7nRRSSGsJb+zd/X9S1tx1HIaMVSWk",
"mac": "07b68a8f52682d80d1febd07cfca0d70843242a2768a925629e0cff2fae150ef",
"tag": ""
}
という、いかにも暗号化していますよという感じの文字列になる。
このうち、先頭の {"iv":"
は固定文字列で、BASE64エンコードすると eyJpdiI6I
が必ずプレフィックスとなる。
LaravelのセッションIDの生成などに使われているEncrypterはこのような法則になっているため。
おしまい。
Discussion