А тут нужно определиться, либо закрыть, либо редирект.
Перенаправить весь сайт можно через присвоение top.location, но браузеры могут заблокировать подобный редирект, либо фрейм может быть внедрён с опцией sandbox и отключенным JS.
Анастасия, httponly защищает от вредоносного javascript, который может каким-нибудь образом оказаться на странице (в результате XSS-уязвимости, или кривая рекламная сеть/счётчик могут подбросить, или обманутый злоумышленниками пользователь самостоятельно вставить в консоль, не столь важно) и утащить куки авторизованного пользователя. Больше ни от чего не защищает и не обязано защищать.
Просто если случится такая проблема и чужой скрипт будет выполнен на вашей странице - то для этого скрипта куки с httponly будут невидимыми, и всё. Конечно, вы должны избегать попадания на страницу чужих скриптов, но не всегда это возможно, рекламные сети требуют вставки своего кода, и таким способом вы защитите ваши куки от них.
gera7, если на бэке ничего ловить не собираетесь, то зачем вообще использовать в таком случае API? Укажите реквизиты, по которым принимаете платежи, и этого будет достаточно.
killsxs, в этом коде пользователь сможет войти под любым паролем, потому что введённый пароль сравнивается с хэшем самого себя, а значит, всегда пройдёт.
Иван, если данные на сайте не такие уж важные, всё равно стоит писать защищённый код, иначе со временем сайт превратится в рассадник вирусов и начнёт приносить вред другим людям. Да, держать к примеру в массиве список таблиц, и при запросе оттуда выбирать нужное имя столбца, исходя из входных данных.
Иван, во-первых, не плодить для одинаковых сущностей разные таблицы. Если очень уж нужно - то по белому списку имя столбца подставлять. Во-вторых, в запрос передавать переменные не конкатенацией/интерполяцией строк, а через подготовленные выражения.
А если начисто поставить винду и без него?