
Eldar
01.08.2018
06:18:31
я использовал гариллу, там все изи

Daniel
01.08.2018
06:20:00
Надо писать свой роутер на си!

Dmitry
01.08.2018
06:21:11
Я имел ввиду пример готового сервиса с хотя бы несколькими модельками. Я просто сейчас смотрю на свой проект и есть у меня сильное чувство, что хоть оно и работает, показывать это никому не стоит
Потому хочу посмотреть как оно выглядит в идеале

Google

Dmitri
01.08.2018
06:54:16

Andrey
01.08.2018
06:55:35
OpenAPI не путайте человека

Dmitry
01.08.2018
06:58:39

Dmitri
01.08.2018
07:07:11

Александр
01.08.2018
07:25:25
странная хурма
а что [20]byte не конвертиться без бубна в строку?
хочу хеша заполучить - string(sha1.Sum(imageData))
но типо говорит нельзя

Olzhas
01.08.2018
07:27:59

Александр
01.08.2018
07:28:22
да это то как раз понятно
я думал "сэкономить" и сделать через string()

Olzhas
01.08.2018
07:29:04

Александр
01.08.2018
07:29:23
отставить нотации

Google

Olzhas
01.08.2018
07:29:48
если нет задачи оптимизировать все по максимуму, то не вижу смысла оптимизировать такие места

Александр
01.08.2018
07:30:30
%s кстати там работать не будет
придут козябры - ���݅@; !R�

Olzhas
01.08.2018
07:30:54
потому что надо делать base46 encode

Александр
01.08.2018
07:31:00
там %x

Olzhas
01.08.2018
07:32:13
я обычно использую base64
но это потому что я пхпшник

Roman
01.08.2018
07:33:01

Olzhas
01.08.2018
07:34:18
кстати

Dmitry
01.08.2018
07:34:30
Может это просто наплыв входящих в ит?

Olzhas
01.08.2018
07:35:41
меня интересует такой вопрос - как сделать сокращалку url? Я сделал реализацию с записью адресов в бд, для определения адреса использовал id, конвертированный в base36
каким способом можно от перебора защититься?

Александр
01.08.2018
07:38:11
хранить урлы в базе
и отдавать guid записи

Daniel
01.08.2018
07:41:46
перебора чего?

Olzhas
01.08.2018
07:41:55
адресов

Daniel
01.08.2018
07:42:14
вектор угрозы какой?

Александр
01.08.2018
07:42:35
кто-то переберет все IDщники

Olzhas
01.08.2018
07:42:37
т.е. у меня адреса типа https://anotherurlshortener/shorturl

Google

Olzhas
01.08.2018
07:42:59
где shorturl - это порядковый id url из бд
в base36

Александр
01.08.2018
07:43:10
назови GUID

Daniel
01.08.2018
07:43:18
а, порядковый номер это плохо

Александр
01.08.2018
07:43:21
и запихни туда радномную строку
или guid

Daniel
01.08.2018
07:43:47
но зачем там порядковый? берите рандомный
ну или шифруйте его уже

Olzhas
01.08.2018
07:46:28
не, не подходит

Александр
01.08.2018
07:46:41

Olzhas
01.08.2018
07:46:47
base36 не особо подходит даже

Александр
01.08.2018
07:47:18
ты можешь блин сгенеировать СЛУЧАЙНУЮ строку небольшой длинны и положить в базу
а получать запись не по ID
а по этой строке

Olzhas
01.08.2018
07:47:28
это то можно

Александр
01.08.2018
07:47:56
индекс не забудь построить по полю

Marperia
01.08.2018
08:10:02

Olzhas
01.08.2018
08:21:03
у них есть такое тестовое задание штоле?

Google

Olzhas
01.08.2018
08:21:28
лол

Pavel
01.08.2018
08:24:15

Alexei
01.08.2018
08:24:44

Olzhas
01.08.2018
08:24:48
Ну саму сокращалку url я еще весной написал
Сегодня вот @ruelephant байтоебством напомнил мне про нее
Я и вспомнил проблему с перебором
С другой стороны, можно и забить
Палка о двух концах - короткий урл или защита от перебора
От перебора можно и простым ограничением по количеству запросов подряд в течении короткого периода времени с одного айпи адреса защититься

Александр
01.08.2018
08:29:07
почему или то ?
в моем случаи уникальный индекс на поле решает проблему
будет все коротко и с защитой от перебора
еще можешь куку выставить

Olzhas
01.08.2018
08:34:14
о, нашел https://github.com/ivanakimov/hashids.js/blob/master/lib/hashids.js
надо на го имплементацию поискать

?
01.08.2018
08:34:59
так перепиши?

Olzhas
01.08.2018
08:36:11
я нашел на го

?
01.08.2018
08:36:34
давай сюда?

Olzhas
01.08.2018
08:36:54
https://github.com/speps/go-hashids

Google

Bohdan
01.08.2018
08:37:55
а что мешает uuid использовать?
ну кроме длины

Александр
01.08.2018
08:38:09
да блин я ему уже предложил этот вариант
не хочет что-то

Maksim
01.08.2018
08:38:50

Olzhas
01.08.2018
08:38:59
https://hashids.org/

Александр
01.08.2018
08:39:25
я вот не пойму
что тебе мешает самому сделать случайную строку?

Olzhas
01.08.2018
08:39:32

Александр
01.08.2018
08:40:19
func init() {
rand.Seed(time.Now().UnixNano())
}
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
func RandStringRunes(n int) string {
b := make([]rune, n)
for i := range b {
b[i] = letterRunes[rand.Intn(len(letterRunes))]
}
return string(b)
}
держи
seed можешь переместить в функцию
что вот за бред то