671 karma · joined January 8, 2012
Well, it is a little bit incomplete I think. A pointer contains both the address of a variable and a type. That is why pointer arithmetic works. Without type of pointer, p++ is not calculatable.
Also the bugs described in article are quite surprising since for a IBM-sized company, you expect them to have solid authentication/authorization framework which they use for all their products. Is this a acquired product? Authentication mechanism is very unusual. Why would anyone save a session id coming from the user? This is more than trusting user input, I think.
Also ../../etc/passwd attack is a kind of vulnerability that almost every automated vulnerabilty scanner scans.
Most people assume that authenticated pages do not need that much security precautions however as articles shows, when combined with authentication bypass vulnerabilities, you basically give keys of your systems to the attacker.
For example, language select box can be placed next to "Go" button (when creating meeting) and next to info button in the meeting. Also using "Accept-Language" HTTP header for choosing the language can be a good default. Another option is to add a language query parameter to the URL so that host can easily share meeting with a particular language.
Also if it would be great if some improvements can be made for low bandwitdh since there are people with slow connections and limited data plans. (On the other hand, there is already an option to lower video quality).
Other than that, kudos to Jitsi team for their great efforts and this great project.
[1] https://www.wiley.com/en-us/The+Data+Model+Resource+Book%2C+...
* from internet or from old codebases of one’s company
Once I was asked to look for one project to see that if there is any room for improvement to speed up the program. After I profiled the program with the test data, I saw that program was severely affected by a "size" method call on a lock-free concurrent list. Since the data structure is lock free, size method is not a constant time operation and calling it in a large list takes too much time. It was just there to print some kind of statistics, I changed the code so that it is called only necessary not every time some operation occurs. This immediately made program 2-3 times faster.
There were also some parts I changed with some algorithms with less algorithmic complexith to make it faster. Overall, I made the program 6x faster. So sometimes you need to use fancy algorithms, sometimes you just need to change one line of code after profiling.
Well, you can somehow achieve a part of it in Python with implementing magic __getattribute__ method:
class CustomArrayList (object):
def __init__(self):
self.list = ArrayList()
def add(self, item):
if item == 666:
raise
self.list.add(item)
def __getattribute__(self, key):
"""For rest of the methods use them as they are.
"""
try:
attr = object.__getattribute__(self, key)
except AttributeError:
attr = object.__getattribute__(self.list, key)
return attr
However, most probably no one will like you if you use this method :) if(log.isInfoEnabled()) {
log.info("Foo: {}", someHeavyOperationThatReturnsString());
}http://psy-lob-saw.blogspot.com.tr/2014/12/the-escape-of-arr...
[1] http://ejohn.org/blog/keeping-passwords-in-source-control/
[1] https://en.wikipedia.org/wiki/Privileged_Identity_Management
[1] https://github.com/paypal/bootstrap-accessibility-plugin
18F specifically does not recommend using Bootstrap for production work because of one,
the difficulty in adapting its opinionated styles to bespoke design work and two,
its CSS style places semantic layout instructions directly in HTML classes.
https://pages.18f.gov/frontend/css-coding-styleguide/framewo...I was wondering why I could not download firefox from my work computer with the latest Chrome, it seems that not only older browsers have the problem with SHA-2 (hint: cooperate proxies).