[Info-vax] Python for x86?
Arne Vajhøj
arne at vajhoej.dk
Tue Apr 18 08:10:02 EDT 2023
On 4/17/2023 10:54 PM, Dave Froble wrote:
> On 4/17/2023 8:00 PM, Arne Vajhøj wrote:
>> On 4/17/2023 10:17 AM, Dave Froble wrote:
>>> Gotta say, I'm 100% with Bill on this subject. Yes, the user knows
>>> what is
>>> needed. But the user may not understand subtle issues. Case in point.
>>>
>>> In CODIS we've provided what I'll call web services. May not meet
>>> Jan Erik's
>>> definition of a web services, but they do the job.
>>
>> In standard IT industry terminology "web service" is used for
>> text payloads transported over HTTP(S).
>>
>> But I don't think your point depends on whether it is text over HTTP(S)
>> or binary over plain TCP.
>>
>>> One allowed a
>>> socket connection to inquire about inventory availability. Someone
>>> setting up
>>> a web based "shopping cart" could invoke the service to get the
>>> availability
>>> of products. Now, there is a bit of overhead in the inquiry. Ask for a
>>> socket connection, do the handshake stuff, send the inquiry, receive
>>> the data,
>>> and then break down the connection. One web "programmer" managed to
>>> just
>>> about drag the entire application to a halt. He was looking for the
>>> availability of thousands of products. And so issued thousands of
>>> connections. Lots of overhead. The designer of the web service
>>> understood
>>> what could be needed, and set up the design to allow thousands of
>>> products to
>>> be requested in one connection. Note, this was well documented.
>>> However, the
>>> user didn't do the research, just did what he needed, and didn't
>>> worry about
>>> the overall task. That's what happens when some hacker who doesn't
>>> understand, or care about, the overall task throws together something.
>>
>> I have a very different take on that example.
>>
>> If the service documentation said that an argument X
>> should be 10 characters, the client developer did not read
>> it and send 12 characters and as a result the server
>> crashed - then I assume we would agree that it was a
>> bad design/implementation of the server, because it
>> should check the length and handle invalid input.
>
> That wasn't the issue.
I know. But the issue sounded pretty similar.
>> But the overload situation is really the same. The
>> server should be prepared for a high request rate and
>> limit the request rate so the service could not bring
>> down the server.
>
> The server performed adequately. It was the hacker who complained, and
> then we had to look at what he was doing. Then we had to point him to
> the documentation, which he hadn't read throughly. It was his stuff
> that was slow.
Ah. It was the client application that was "about drag the entire
application to a halt". I read it as the server application.
My mistake.
>> So I think this is a case of the server side being
>> bad design.
>
> No,it worked quite well.
>
>> There is a little extra twist here. If the service
>> had been a standard web service, then it would not
>> have been necessary to implement the request rate
>> limit in the service itself. Instead a setup like:
>
> Guess you got a problem with apps that work quite well?
>
>> client--API gateway--service
>>
>> could have been used and the API gateway could
>> do rate limiting defined in configuration (it could
>> also do caching, access control and other useful
>> stuff all defined in configuration).
>
> Same result, the hacker would have had poor performance.
I misunderstood the problem.
Arne
More information about the Info-vax
mailing list